私はキャットDynamicProxyをAutofacで使用しています。私はプロキシを作成したオブジェクトを持っていて、プロキシで動作する2つのインターセプタを持っています.1つは例外をログに記録し、もう1つはメソッドの戻り値を変更します。登録コードは次のようになります。Autofac + Castle DynamicProxy:インターセプタの順
var builder = new ContainerBuilder();
builder.Register(c => c.Resolve<ProxyGenerator>()
.CreateClassProxy<Foo>(
c.Resolve<ResultProcessorInterceptor>(),
c.Resolve<ExceptionLoggingInterceptor>()))
.As<Foo>();
この順序で引数を供給することにより、私は、私が欲しいという結果を得る、すなわち、例外がログに記録され、その結果が処理されていることを発見しています。引数の順序を逆にすると、ロギングは発生しません。
私の質問は、このように登録されています。インターセプタは毎回同じ順序で実行されることが保証されていますか?それとも、毎回何をしようとしているのかを確認する良い方法がありますか?
FWIWでは、IInterceptorSelectorインターフェイスを調べました。おそらく、私は何かを見逃している - それはそうではない - しかし、それはこの場合には関係がないように見えた。しかし、私が間違っていれば、私は訂正されてうれしいです。
必要に応じて、より長いコードサンプルを提供できます。
musicologyman