Специализированный подкласс FaultException или FaultException<T>

Я хочу, чтобы мой сервис WCF мог возвращать некоторые известные ошибки. т.е. определенный FaultContract

Я немного сбит с толку относительно того, должен ли я получать свой собственный FaultException подкласс, или создание класса детализации и использование FaultException<TDetail>,

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

Я склоняюсь к выводу, так как я думаю, что клиентский код выглядел бы чище MyException а не WCF-ориентированный FaultException<MyExceptionDetail>, но у меня действительно нет сильных чувств по этому поводу.

1 ответ

Решение

Вы должны использовать FaultException как правило, для неизвестных или общих неисправностей, и FaultException<T> для типовых ошибок.

Типизированные ошибки больше похожи на типизированные исключения в стандартном.NET, поэтому они будут предпочтительным методом.

Обратите внимание, что вам нужно использовать договоры о сбоях в определении вашего контракта на обслуживание, в противном случае все исключения дойдут до клиента по мере FaultException, даже если вы бросаете FaultException<T>,

Другие вопросы по тегам