.NET 3.5 では、System.Reflection を使用して AOP (おそらく Castle のウィンザー インターセプターのコンテキストで) を使用して、メソッド レベルで実行する必要があるセキュリティ アクションを定義するなどの作業を行う予定です。 Reflection の一部が遅いと聞き (MSDN の記事を読んだことがあります)、これらの部分をキャッシュしたいと考えています (製品コードに近づいたら、ともかく)。私のアプローチを検証したいと思います:
- キャッシュ キーは {type} + {大文字と小文字を区別するメソッド名} + {パラメーター タイプのリスト} です。
- キャッシュ キー オブジェクトは、Equals 操作を介して比較できます
- キャッシュ ペイロードは {MethodInfo} + {メソッドで定義されたカスタム属性のリスト} です。
- キャッシュは、コンストラクター注入を介してインターセプターに注入されます
- キャッシュは長期間維持できます (自己変更コードを書くつもりはないという仮定に基づいています ;-) )
アップデート:
自分で書いたリフレクションを介してメソッドを呼び出すつもりはありません。(現時点では)機能を注入したい属性の属性を調べてください。ここで、属性は注入する動作を定義します。私のインターセプターは、現時点では、変更する理由がわかるまで、Castle の Windsor IInterceptor メカニズムを使用する予定です。