Специализированный подкласс FaultException или FaultException<T>
Я хочу, чтобы мой сервис WCF мог возвращать некоторые известные ошибки. т.е. определенный FaultContract
Я немного сбит с толку относительно того, должен ли я получать свой собственный FaultException
подкласс, или создание класса детализации и использование FaultException<TDetail>
,
Похоже, что есть примеры того и другого, и мне просто интересно, каково общее согласие.
Я склоняюсь к выводу, так как я думаю, что клиентский код выглядел бы чище MyException
а не WCF-ориентированный FaultException<MyExceptionDetail>
, но у меня действительно нет сильных чувств по этому поводу.
1 ответ
Вы должны использовать FaultException
как правило, для неизвестных или общих неисправностей, и FaultException<T>
для типовых ошибок.
Типизированные ошибки больше похожи на типизированные исключения в стандартном.NET, поэтому они будут предпочтительным методом.
Обратите внимание, что вам нужно использовать договоры о сбоях в определении вашего контракта на обслуживание, в противном случае все исключения дойдут до клиента по мере FaultException
, даже если вы бросаете FaultException<T>
,