2010-06-24 2 views
0

J'essaie d'adapter un cadre écrit à l'origine pour WSE à WCF. Le cadre jette parfois SoapException s profondément dans ses entrailles, que je voudrais attraper et transformer en objets que le cadre WCF va gérer.Définition du champ de détail d'une exception FaultException sans sérialisation d'objet

Pour les clients existants de ce cadre pour continuer à travailler, je dois le domaine <detail> du message d'erreur SOAP être exactement ce qui est dans le domaine SoapException.Detail, mais je ne peux pas trouver un moyen d'y arriver. Tous les documents sur MSDN sont orientés vers l'utilisation d'un objet de détail sérialisé, qui ne fonctionnera pas pour moi. Existe-t-il un moyen de forcer le SoapException dans un objet FaultException ou FaultException<T> qui conserve les champs d'acteur, de code et de détail de l'exception de savon d'origine?

Répondre

1

Oui, certainement, mais je ne suis pas sûr - en fonction de votre question - si vous avez exploré et éliminé cette option pour votre situation.

Vous pouvez utiliser un gestionnaire d'erreurs WCF personnalisé et définir le champ Detail de l'exception fault comme vous le souhaitez, sans aucune sérialisation ou désérialisation impliquée dans le processus d'affectation (dans les méthodes HandleFault ou ProvideFault). Voir http://wcfpro.wordpress.com/2010/11/18/wcf-extensions-error-handler/, http://wcfpro.wordpress.com/2011/01/04/catching-the-real-exception/, et http://blogs.msdn.com/b/pedram/archive/2008/01/25/wcf-error-handling-and-some-best-practices.aspx pour ce faire.

Questions connexes