我使用了SL业务应用程序模板,并在解决方案的.Web部分的Services文件夹中添加了一个新的空白空域服务。该类是DomainService1,并继承自DomainService。它包含一种方法:
public class DomainService1 : DomainService
{
public string Hello()
{
return "Hello World";
}
}
如何从客户端访问此服务方法?我似乎无法在所有客户端创建域服务的实例.....
答案 0 :(得分:4)
客户端代码由RIA Services生成。
要访问继承DomainService的服务,请在客户端创建新的上下文。
将名称的“服务”部分替换为“上下文”。
UserService = UserContext,ArticleService = ArticleContext等。
客户端代码
var testContext = new TestContext();
testContext.Hello();
服务代码
[EnableClientAccess]
public class TestService : DomainService
{
public string Hello()
{
return "Hello world!";
}
}
答案 1 :(得分:0)
请确保您已为项目启用了RIA服务。
如果您的服务名称以service
标记结尾,那么您将能够将其转换为上下文
就像我的服务名称是DomainService1
一样,然后在客户端,DomainContext1
可以访问它。如果在服务器端,我的域服务名称是ABC
,那么我可以通过名称直接访问它,不需要上下文。
服务代码:
[EnableClientAccess]
public class TestService : DomainService
{
public string Hello()
{
return "Hello world!";
}
}
客户代码:
在客户端,您必须声明system.your web project.web.servicesmodel.client
现在,
TestContext test=new TestContext();
test.Hello(getData,null,false);`
//第一个参数是回调方法,第二个参数对你来说并不重要,第三个参数是发生任何异常,
public void getData(InvokeOpration<string> value)
{
MessageBox.Show(""+value.Value);
}
现在您可以将Hello World作为MessageBox
。