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

发布于 2024-09-08 15:23:37 字数 294 浏览 7 评论 0原文

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

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

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

I have used the SL business application template and added a new blank, empty domain service in my Services folder on the .Web part of the solution. The class is DomainService1 and inherits from DomainService. It contains one method:

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

How do I access this service method from the client? I can't seem to create an instance of the domain service at all client side.....

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

怪我入戏太深 2024-09-15 15:23:37

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

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

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

UserService = UserContext、ArticleService = ArticleContext 等

客户端代码

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

服务代码

[EnableClientAccess]
    public class TestService : DomainService
    {
        public string Hello()
        {
            return "Hello world!";
        }
    }

The client side code is generated by RIA Services.

To access services that inherits DomainService you create a new context on the client side.

Replace the "Service" part of the name with "Context".

UserService = UserContext, ArticleService = ArticleContext etc.

Client code

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

Service code

[EnableClientAccess]
    public class TestService : DomainService
    {
        public string Hello()
        {
            return "Hello world!";
        }
    }
风蛊 2024-09-15 15:23:37

请确保您已为您的项目启用 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 获取。

Please make sure you have enabled the RIA service for your project.

If your service name ends with a service tag then you will be able to convert it to a context
like my service name is DomainService1 then at client side it could be accessed by DomainContext1. If on the server side, my Domainservice name is ABC, then I can directly access it by name, there is no need to context.

Service code:

[EnableClientAccess]
public class TestService : DomainService
{
    public string Hello()
    {
        return "Hello world!";
    }
}

Client code:
On the client side you have to to declare a namespace like system.your web project.web.servicesmodel.client

Now,

TestContext test=new TestContext(); 
test.Hello(getData,null,false);`

// first parameter is callback method, the second is not important for you, and the third is if any exception occurs then,

public void getData(InvokeOpration<string> value)
  {
    MessageBox.Show(""+value.Value);

    }

Now you can get the Hello World as a MessageBox.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文