2013-11-28 3 views
2

Я работаю на приложении IOS с использованием Xamarin, и это приложение делает асинхронные называют к WCF WebService, с прокси является созданный с использованием инструмента SilverLight SlSvcutil, как рекомендовано командой Xamarin.Xamarin - Обработка исключений в WCF асинхронного обратного вызова не работает - App аварии

Проблема заключается в следующем: Если устройство не подключено к Интернету, и приложение пытается сделать вызов веб-службы, оно выходит из строя, не перехватывая исключение.

код выглядит следующим образом:

   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 является система .Reflection.TargetInvocationException, но даже если я завершу все это в блок try/catch, он всегда сбой.

Любые идеи?

Заранее спасибо

ответ

2

Ok, я даже немного Embarassed, но я понял, что EventArgs в завершающем событии предоставляет свойство Error, который может быть использован для обработки любых проблем.

This thread helped me on this

Во всяком случае, я собираюсь оставить его здесь для целей обучения, а также в случае, если кто-то попадает в ту же проблему.

Спасибо всем.