我正在尝试非常简单地对 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 服务。我对这些东西很陌生,所以我可能做错了一些非常简单的事情。