我正在使用 Xamarin 开发 iOS 应用,此应用会将异步调用转换为 WCF webservice,使用SilverLight SlSvcutil工具生成代理,按照Xamarin团队的建议。
问题是:如果设备未连接到互联网且应用尝试拨打网络服务,则会崩溃而不会发现异常。
代码如下所示:
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.Result是 System.Reflection.TargetInvocationException ,但即使我将整个事物包装在try / catch块中,它总是崩溃。
有什么想法吗?
提前致谢
答案 0 :(得分:2)
好吧,我甚至有点尴尬,但我发现Completed事件中的EventArgs提供了一个Error属性,可以用来处理任何问题。
无论如何,我会把它留在这里用于学习目的,以防万一其他人遇到同样的问题。
谢谢大家。