Установка поля детализации `FaultException` без сериализации объекта - PullRequest
0 голосов
/ 24 июня 2010

Я пытаюсь адаптировать среду, изначально написанную для WSE, к WCF.Фреймворк иногда выбрасывает SoapException s из глубины своего недра, который я хотел бы поймать и преобразовать в FaultException объекты, которые будут обрабатываться фреймворком WCF.продолжить работу, мне нужно, чтобы поле <detail> в сообщении о сбое SOAP было точно , что находится в поле SoapException.Detail, но я не могу найти способ сделать это.Все документы в MSDN ориентированы на использование сериализованного подробного объекта, который мне не подойдет.Есть ли способ заставить SoapException в FaultException или FaultException<T> объект, который хранит поля актера, кода и сведений из исходного исключения мыла?

1 Ответ

1 голос
/ 31 марта 2011

Да, определенно, но я не уверен - исходя из вашего вопроса - исследовали ли вы и исключили ли этот вариант для вашей ситуации.

Вы можете использовать пользовательский обработчик ошибок WCF и установить в поле «Сведения» об исключении ошибки все, что вам нужно, без какой-либо сериализации или десериализации, вовлеченной в процесс назначения (в методах HandleFault или ProvideFault). См. http://wcfpro.wordpress.com/2010/11/18/wcf-extensions-error-handler/, http://wcfpro.wordpress.com/2011/01/04/catching-the-real-exception/ и http://blogs.msdn.com/b/pedram/archive/2008/01/25/wcf-error-handling-and-some-best-practices.aspx, чтобы сделать это.

...