3

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

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

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

4

2 回答 2

4

客户端代码由 RIA 服务生成。

要访问继承 DomainService 的服务,您需要在客户端创建一个新的上下文。

将名称的“服务”部分替换为“上下文”。

UserService = UserContext、ArticleService = ArticleContext 等。

客户端代码

var testContext = new TestContext();
            testContext.Hello();

服务代码

[EnableClientAccess]
    public class TestService : DomainService
    {
        public string Hello()
        {
            return "Hello world!";
        }
    }
于 2010-07-07T11:52:32.410 回答
0

请确保您已为您的项目启用 RIA 服务。

如果您的服务名称以service标签结尾,那么您将能够将其转换为上下文,例如我的服务名称,DomainService1然后在客户端它可以通过DomainContext1. 如果在服务器端,我的 Domainservice 名称是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.

于 2012-05-14T16:47:07.417 回答