我正在使用Xamarin开发iOS应用程序,该应用程序对WCFWeb服务进行异步调用,并根据Xamarin团队的建议使用SilverLight SlSvcutil工具生成代理。
问题是:如果设备未连接到互联网,并且应用程序试图调用Web服务,则会在未捕获异常的情况下崩溃。
代码如下:
int versao = 0;
// Set callback function
WebService.WSVersaoCompleted += (
object sender,
WSVersaoCompletedEventArgs e) => {
versao = e.Result;
// Free thread
syncEvent.Set();
};
// Webservice call
WebService.WSVersaoAsync();
// Hold thread
syncEvent.WaitOne();
return versao > 0;
因此,我实际上能够得到一个响应,应用程序命中"完成"事件,我可以看到e。结果是一个System.Reflection.TargetInvocationException,但即使我将整个事情封装在try/catch块中,它也总是崩溃。
有什么想法吗?
提前感谢
好吧,我甚至有点尴尬,但我发现Completed事件中的EventArgs提供了一个Error属性,可以用来处理任何问题。
这个线程帮助了我这个
不管怎样,我会把它留在这里学习,以防其他人遇到同样的问题。
谢谢大家。