Silverlight - 创建了一个新的域服务但是如何从客户端访问它?

时间:2010-07-07 11:00:03

标签: silverlight domainservices

我使用了SL业务应用程序模板,并在解决方案的.Web部分的Services文件夹中添加了一个新的空白空域服务。该类是DomainService1,并继承自DomainService。它包含一种方法:

public class DomainService1 : DomainService
{
    public string Hello()
    {
        return "Hello World";
    }
}

如何从客户端访问此服务方法?我似乎无法在所有客户端创建域服务的实例.....

2 个答案:

答案 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