WCF + Корпоративная библиотека + ValidationFault - PullRequest
0 голосов
/ 24 февраля 2012

Я пытаюсь перехватить исключения ValidationFault моего сервиса и вернуть экземпляр MyClass со свойством Сообщение, заполненное ошибкой проверки, предоставленной EntLib, когда мой клиент вызывает один из моих методов сервиса без правильных параметров ( Я не могу использовать сложные типы).

Я попытался реализовать два интерфейса для выполнения этой задачи: IParameterInspector и IOperationInvoker. Проблема заключается в том, что после вызова метода BeforeCall (интерфейса IParameterInspector) EntLib генерирует исключение ValidationFault, но я не могу его перехватить, и мой код не достигает метода Invoke моего IOperationInvoker класса и из-за этого я не могу заменить возвращаемое значение экземпляром MyClass.

Помните, мой клиент не основан на платформе .NET, и там нет такого понятия, как catch (FaultException<ValidationFault> ex). Вот почему я ДОЛЖЕН работать с объектами по умолчанию в своих ответах на услуги.

Я ценю помощь.

1 Ответ

0 голосов
/ 24 февраля 2012

Можете ли вы использовать IErrorHandler реализацию, похожую на WCF ExceptionShielding в Enterprise Library? В основном перехватывают все исключения и, если это FaultException<ValidationFault>, преобразуйте ValidationFault в ваше собственное сообщение и верните его.

Похоже, что вывод ProvideFault является сообщением, поэтому вы можете вернуть сообщение вместо ошибки. Эта публикация , кажется, дает подход.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...