我创建了一个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]
有人可以帮助我获得我需要的输出(“嗨”)。
感谢。
答案 0 :(得分:1)
对Silverlight的所有服务调用都是异步的;换句话说,你没有立即收到回复。相反,您必须为调用的完成设置事件处理程序。我不知道你的服务定义,但它可能看起来像这样:
var operation = t.reHi();
operation.Completed += (s, e) => {
MessageBox.Show(operation.Value);
};