2009-04-08 19 views
3

私は構築時にオブジェクトに対していくつかのAOPを実行しようとしていて、IConstructorInterceptorを見つけました。これは私が望むものには完璧ですが、doesn't appear to work(少なくともバージョン1.2では)です。Spring.NETとコンストラクタのインターセプタ

私もIObjectPostProcessor & IInstantiationAwareObjectPostProcessorの両方を見てきましたが、私は、建設時の周りのオブジェクトに対して処理を行うにはどのような方法を見つけることができません... IInstantiationAwareObjectPostProcessor上PostProcessPropertyValues方法は近いですが、それが唯一の合格setter注入プロパティではなくコンストラクタarg値...

具体的には、インスタンス化直後のオブジェクトへの参照と同時に、コンストラクタに注入されたオブジェクトへの参照です。これを行う方法はありますか、セッター注入&にポストプロセッサーまたはMethodInterceptorを使用するだけです。

+0

これまでにこの作業を行っていますか? – DevelopingChris

+1

いいえ残念ながら、この機能は現在のバージョン(1.3にも登場する予定)にはありません。 – Alconja

+0

関連:http://stackoverflow.com/questions/4106701/inheritancebasedaopconfigurer-using-runtime-constructor-arguments – Marijn

答えて

0

AOPは依存性注入ではなく、コール傍受を提案しています。 Spring.Netを使用すると、setersまたはコンストラクタを使用して依存関係注入を実行できます。あなたの投稿とコメントのために、それは動作するはずです。

Spring.Net初期化パイプラインでは、まず依存グラフを分析し、オブジェクトの作成を行い、すべての依存関係を設定します。その後、クラスが "Spring.Objects.Factory.IInitializingObject"を実装する場合、メソッド "void AfterPropertiesSet();"が呼び出されます。それを実行する他の方法は、あなたのオブジェクト構成を使用することです、あなたはオブジェクトノード上でinitメソッドを設定するかもしれません。 この動作は、IoC/DIの概念に基づいています。

特定のファクトリオブジェクトを作成する必要があるかもしれません。これを実行するには、FactoryがSpring.Objects.Factory.IFactoryObjectインターフェイスを実装する必要があります。それはコンテナがオブジェクトの作成を委譲するのを助けます(この構成のプロパティとコンストラクタはあなたの工場用です)。

最高のご協力ありがとうございました

関連する問題