1

このようにクラスを傍受するために、DynamicProxy2でAutofacを使用しています

builder.RegisterType<Calculator>().As<ICalculator>().EnableInterfaceInterceptors()
                .InterceptedBy(typeof (CallLogger));

これにより、特定のインターフェイスのすべてのメソッドがインターセプトされます。

インターフェイスの特定のメソッドだけをインターセプトする方法はありますか?

4

1 に答える 1

2

考えられる方法はいくつかありますが、おそらくもっと多くの方法があります。

[LogCall]または[DoNotLogCall](オプトインまたはオプトアウト) のようなカスタム属性を作成し、それをメソッドに適用してインターセプトし、 内の属性の存在を確認できますCallLogger

または、CallLoggerログに記録する必要があるメソッドの名前 (または検索するルール) を使用して を構成できます。

于 2011-01-28T00:29:17.073 に答える