質問

AutoFacで城DynamicProxyを使用しています。私はプロキシを作成したオブジェクトを持っています、そして私はプロキシに行動する2つのインターセプターを持っています.1つは例外を記録するためのものと、メソッドの戻り値を変更するための2番目のインターセプターがあります。登録コードは次のようになります。

var builder = new ContainerBuilder();

builder.Register(c => c.Resolve<ProxyGenerator>()
    .CreateClassProxy<Foo>(
        c.Resolve<ResultProcessorInterceptor>(),
        c.Resolve<ExceptionLoggingInterceptor>()))
    .As<Foo>();
.

この順序で引数を指定することで、私が欲しい結果を得ること、すなわち例外が記録され、結果が処理されます。引数の順序を逆にすると、ロギングは発生しません。

私の質問、そして:このように登録されているのは、毎回同じ順序で実行することが保証されているインターセプターですか?または注文が毎回私が意図していることになることを確実にするためのより良い方法がありますか?

FWIW、IintercectorSelectorインターフェースを見ました。おそらく私は何か足りない - はありません - しかしそれはこの場合には関係ないように見えました。しかし、私が間違っているならば、私は修正されて嬉しいです。

必要に応じて長いコードサンプルを供給することができます。

Musicologyman

役に立ちましたか?

解決

はい、インターセプターは毎回傍受されたメソッドごとに提供された順序でデフォルトで実行されます。

必要に応じてIInterceptorSelectorを使用してメソッドごとにそれを上書きすることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top