WCF アプリケーションでグローバル エラー処理を提供したいと考えており、IErrorHandler を実装できることがわかっています。次に例を示します。
http://www.remondo.net/wcf-global-exception-handling-attribute-and-ierrorhandler/
http://www.codeproject.com/Articles/26320/WCF-Error-Handling-and-Fault-Conversion
http://www.haveyougotwoods.ca/2009/06/24/creating-a-global-error-handler-in-wcf
ただし、私が本当にやりたいことは、Fault 例外をログに記録したりスローしたりするだけでなく、呼び出し元にカスタム メッセージを返すことによって、例外を "処理" することです。ビジネス関連のメッセージ (検証エラーや警告など) を返すために、既にカスタム メッセージを使用しています。
非常に大まかな擬似コードでは、このような try-catch ブロックでこれを行います
public MyResponseDto CallMyService(MyRequestDto request)
{
...
try
responseDto = blah blah blah
catch (Exception ex)
responseDto.ClientMessage.Description = ex.Messaeg
finally
return responseDto;
}
私の質問は - グローバルハンドラーでこれを行うにはどうすればよいですか? 「ClientMessage」へのアクセスはどのように取得しますか?
私の直感は、サービスの内部メンバーにアクセスするには、属性を使用してからリフレクションを使用する必要があるということです??? しかし、それを応答メッセージ オブジェクトに戻すにはどうすればよいでしょうか?
ありがとう!