0

我正在尝试非常简单地对 Web 服务方法进行异步调用并获取返回值。我在 Visual Studio 2010 中使用它的服务引用代理类功能来执行此操作。奇怪的是,这方面的资源很少而且相差甚远,而且大部分都是过时的,使用 Begin[Method] 和 End[Method] 而不是 [Method]Async 和 [Method]Completed。

我试图遵循这个: http: //msdn.microsoft.com/en-us/library/55xs7d7f (v=vs.80).aspx 。当引发表示方法已返回的事件时,我总是得到 null 结果。

MyWebServiceClient client = new MyWebServiceClient();
client.webMethodCompleted += 
    new System.EventHandler<webMethodCompletedArgs>(Callback);
client.webMethodAsync();

稍后在代码中,Callback方法:

void Callback(object sender, webMethodCompletedArgs args)
{
    string data = args.Result;
}

问题是,如果我运行这段代码,args.Result将永远是null. 我已经使用同步接口测试了 Web 服务,它工作得很好,所以我知道它不是 Web 服务。我对这些东西很陌生,所以我可能做错了一些非常简单的事情。

4

1 回答 1

0

如果 args.Result 为 null,则 args.Error 属性应填充发生的异常。

于 2012-08-03T21:53:47.167 回答