我有一个简单的服务,它有一个名为 Sum 的操作契约(Contract)方法
[OperationContact]
int sum(int i, int q);
当我将 Web 服务集成到 Silverlight 应用程序中时,将此代码添加到主页中:
ServiceReference1.Service1Client obj = new ServiceReference1.Service1Client();
它不调用求和方法。此外它显示:
obj.sumAsync(int i, int q)
最佳答案
Silverlight 不允许创建 Web 服务的同步代理。它使用异步服务代理模型。 Silverlight 中的每个 OperationContract 都有两个属性:
obj.sumAsync(int i, int q, object state)
obj.sumAsyncCompleted; // Event
你应该试试这个:
private void CallMethod()
{
obj.sumAsync(2,2);
obj.sumAsyncCompleted += (s,e) =>
{
if (e.Error == null)
{
MessageBox.Show(e.Result.ToString());
}
};
}
关于c# - 从 Silverlight 调用 WCF 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10631719/