2009-06-18 18 views
4

私は現在、多くのiterfacesとそれらの実装がすべて単一性で作成されている問題を扱っています。これらのクラスには正規のベースで例外をスローするメソッドがいくつかあります。これらのクラスの周りに動的プロキシを作成したいので、メソッドで発生したすべての例外をキャッチできます。Unityインターセプトと例外

私はUnityで遊んでいるので、このようなことがUnity Interceptionを使用して行うことができるのだろうかと思います。

つまり、TransparentProxyInterceptorを作成し、これらのメソッドのinvocatinoの周りにtry-catchブロックをラップします。 これはまったく可能ですか、間違った方向に向いていますか? ありがとう

答えて

6

はい、ユニティインターセプト(AOP)は例外処理に対処する優れた方法です。タイムアウトまたはロック例外のログファイルへの書き込みやイベントログ

    • をメール
    • 増加にパフォーマンスカウンタを送る
    • 自動リトライ:あなたのような行動のすべての種類を追加することができます

    あなたのコールハンドラは、次のようになります。

    public override IMethodReturn Invoke(IMethodInvocation input, GetNextHandlerDelegate getNext) 
    { 
        IMethodReturn result = getNext()(input, getNext); 
    
        if (result.Exception != null) 
        { 
         // do something 
        } 
    
        return result; 
    }