我非常简单地尝试对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服务。我是新手,所以我可能做错了,这很简单。
答案 0 :(得分:0)
如果args.Result为null,则应使用发生的异常填充args.Error属性。