在C#中访问异步Web服务方法

时间:2012-08-03 21:34:12

标签: c# web-services windows-phone-7

我非常简单地尝试对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服务。我是新手,所以我可能做错了,这很简单。

1 个答案:

答案 0 :(得分:0)

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