2012-03-02 2 views
0

WCF 서비스가 일부 알려진 오류를 반환 할 수있게하려고합니다. 즉 정의 된 FaultContract특수화 된 FaultException 하위 클래스 또는 FaultException <T>

나는 내 자신의 FaultException 서브 클래스를 파생해야하는지, 아니면 세부 클래스를 만들고 FaultException<TDetail>을 사용해야하는지에 대해 약간 혼란 스럽다.

둘 모두의 예가있는 것처럼 보입니다. 나는 일반적인 합의가 무엇인지 궁금했습니다.

클라이언트 코드가 WCF 중심 FaultException<MyExceptionDetail>이 아닌 MyException을 잡아내는 것이 더 깨끗해 보일 것이라고 생각하기 때문에 나는 파생 시키려고 기울이고 있습니다. 그러나 그것에 대해 어떤 강한 감정도 갖고 있지 않습니다.

+1

서비스가'FaultException'의 파생 클래스를 반환 할 수있는 방법이 없으므로 선택 사항은 분명합니다. –

+0

감사합니다, 당신이 올바른 것 같습니다. 나는 나쁜 예를 발견했을 것이다. – GazTheDestroyer

답변

0

일반적으로 알려지지 않은 또는 일반 오류의 경우 FaultException을 사용해야하고 입력 된 오류의 경우 FaultException<T>을 사용해야합니다.

typed 오류는 표준 .NET에서 입력 된 예외와 유사하므로 선호되는 방법입니다.

서비스 계약 정의에 fault contracts을 사용해야합니다. 그렇지 않으면 FaultException<T>을 던진 경우에도 예외가 모두 클라이언트에 도달합니다 (FaultException).