3

AOP に対する Spring.NET のサポートを使用して、依存関係の注入/制御の反転/アスペクト指向プログラミングを実行しようとしています (たくさんの流行語で申し訳ありませんが、誰かに違いを明確にするように求める別の質問を投稿するかもしれません :) ) .

具体的には、メソッドが呼び出されるたびに AOP アドバイス/インターセプターが呼び出されるように、再帰的なメソッド呼び出しをインターセプトしたいと考えています。

Spring.Net は、最初のメソッド呼び出し以外は傍受していないようです。Spring.Netはインスタンスごとに正確に 1 つのインターセプター チェーンを維持しており、最初のメソッド呼び出しが完了するまでインターセプターをこれ以上呼び出さないと思います。

再帰呼び出しを含む、すべてのメソッド呼び出しに対してインターセプター (アドバイス) をトリガーすることに関する情報はありますか?

役立つ場合は、コード/出力例を提供できます。ありがとう!

4

3 に答える 3

4

http://forum.springframework.net/showthread.php?t=5331を参照してください

于 2009-01-26T13:22:31.373 に答える
2

プロキシベースの AOP を使用している場合、これは再帰的なメソッド呼び出しでは機能しません。ターゲットに対する最初の呼び出しはプロキシによって傍受され、アドバイスが実行されます。次に、ターゲットのメソッドが呼び出され、後続の呼び出しはターゲット クラス内にとどまり、プロキシを認識しません。これを機能させる唯一の方法は、バイトコードを実際に変更して、クラス自体に動作が含まれるようにすることです。

私は実際には Spring.NET を扱ったことがない (Spring と Java のみ) ので、残念ながら .NET ユニバースに存在するバイトコード ウィービング オプションの種類については知りません。

于 2009-01-26T07:30:02.897 に答える
0

これ自体がSpring.NETではないことは知っていますが、PostSharpを見てください。動的プロキシに依存せず、再帰的なメソッド呼び出しを処理するコンパイル時のウィービングを提供します。ただし、構成は少し異なります...

于 2009-06-09T04:43:44.153 に答える