Silverlight域名服务帮助

时间:2011-04-14 21:56:45

标签: c# silverlight web-services

我创建了一个Silverlight Business应用程序,并在app.web项目中创建了一个域服务。

我在DomainService类中创建了一个方法:

public String reHi()
    {
        return "HI";
    }

在我的客户端,Silverlight页面中我设置了名称

using System.ServiceModel.DomainServices.Client;

然后我包含以下代码来获取上下文:

Repas.Web.RepasContext t = new Repas.Web.RepasContext();
MessageBox.Show(t.reHi());

然后项目无法构建错误:

  

错误2参数1:无法转换   从   'System.ServiceModel.DomainServices.Client.InvokeOperation'   'string'

然后我在代码中添加了一个toString来查看它将输出的内容但是我得到了:

  

System.ServiceModel.DomainServices.Client.InvokeOperation`1 [System.String]

有人可以帮助我获得我需要的输出(“嗨”)。

感谢。

1 个答案:

答案 0 :(得分:1)

对Silverlight的所有服务调用都是异步的;换句话说,你没有立即收到回复。相反,您必须为调用的完成设置事件处理程序。我不知道你的服务定义,但它可能看起来像这样:

var operation = t.reHi();
operation.Completed += (s, e) => {
    MessageBox.Show(operation.Value);
};