3

現在の実装のほとんどは、ここで提供される情報に基づいています。

Ninject特定の属性を持つメソッドをインターセプトしますか?

特定の属性 (ninject インターセプター属性ではない) を持つすべてのメソッドを検索するカスタム計画戦略クラスを使用します。これらのメソッドは、基準に一致する場合にプロキシされます。

使用例は次のとおりです。

Kernel.Components.Add<IPlanningStrategy, CustomPlanningStrategy<LoggingAttribute, LoggerInterceptor>>();

これにより、属性を持つメソッドが検索され[Logging]、ロギング インターセプタが使用されます。

ただし、現在、関連する属性を持つメソッドをプロキシしようとしているときに、動的プロキシから InvalidProxyConstructorArgumentsException を取得しています。仮想メソッドが必要であることを読んだことは覚えていますが、パラメーターなしのコンストラクターが必要だったことは覚えていません。

すべてのバインディングはインターフェイスに対して行われ、AOP インターセプターは、属性と上記のリンクに記載されているカスタム プロキシ プランニング クラスを介して行われます。

動的プロキシ (または linfu バージョン) を取得して、依存関係を持つコンストラクタを持つクラスをプロキシする方法はありますか? (すべての依存関係はカーネルにあるため、解決できないわけではありません)。

4

2 に答える 2