私が取り組んでいるアプリケーションでは、Castle Windsor の AOP 機能の一部を使用しています。これは主に、デバッグ/パフォーマンス分析の目的でメソッドのエントリ/終了ポイントと時間をログに記録するためです。これは、コンテナー全体でデフォルトのインターセプターを使用しているため、それ自体が Logging クラスを含むすべてに適用されることを除いては正常に機能します。そのため、ログ書き込みメソッドにどのように出入りするかを説明するメッセージでログが詰まります。
他のクラスでは、デフォルトをオーバーライドするためにクラスの属性とともにカスタム IInterceptorSelector を使用できIntercept
ますが、Castle のドキュメントを調べても、同等DoNotIntercept
のタイプの属性は見つかりませんでした。空のリストを返すロギング クラス用の NullInterceptorSelector を作成しましたが、これはクレイジーな回避策のように思えます。これを行うためのより良い方法があるに違いないと確信しています。
編集: また、インターセプター リストは累積的であるため、私の NullInterceptorSelector は実際には機能しません。