Le meilleur moyen d'attraper une exception WCF dans Silverlight?

J'ai une application Silverlight 2 qui est de la consommation d'un service WCF. En tant que tel, il utilise des rappels asynchrones pour tous les appels aux méthodes du service. Si le service n'est pas en cours d'exécution, ou il se bloque, ou le réseau tombe en panne, etc avant ou au cours de l'un de ces appels, une exception est générée comme vous le souhaitez. Le problème est, je ne sais pas comment récupérer cette exception.

  • Parce que c'est un appel asynchrone, je ne peux pas me faire commencer appel avec un bloc try/catch et avoir ramasser une exception qui se produit après que le programme a évolué à partir de ce point.
  • Parce que le proxy du service est générée automatiquement, je ne peux pas mettre un bloc try/catch sur chaque générée fonction qui s'appelle EndInvoke (où l'exception s'affiche en fait). Ces généré fonctions sont également entouré par un Code Externe, dans la pile d'appel, donc il n'y a nulle part d'autre dans la pile de mettre un try/catch.
  • Je ne peux pas mettre le try/catch dans mes fonctions de rappel, parce que l'exception se produit avant qu'ils ne se appelé.
  • Il y a un Application_UnhandledException fonction de mon Application.xaml.cs, qui capture toutes les exceptions non gérées. J'ai pu l'utiliser, mais il semble comme un malpropre façon de le faire. Je préfère réserver cette fonction pour la vraiment des erreurs inattendues (aka bugs) et finissent pas avec le code de cette fonction pour chaque circonstance, je voudrais traiter de manière spécifique.

Ai-je raté une solution évidente? Ou suis-je coincé à l'aide de Application_UnhandledException?

[Modifier]
Comme mentionné ci-dessous, l'Erreur de la propriété est exactement ce que je cherchais. Qu'est-ce que me lancer pour une boucle, c'est que le fait que l'exception est levée, et semble être interceptée, mais l'exécution est en mesure de continuer. Il déclenche la Application_UnhandledException de l'événement et les causes de VS2008 de briser l'exécution, mais qui continue dans le débogueur permet l'exécution continue. Ce n'est pas vraiment un problème, il semble juste bizarre.

source d'informationauteur wahrhaft