2009-04-08 89 views
3

我想在構造時在對象上做一些AOP,並且發現了IConstructorInterceptor,它對於我想要的來說是完美的,但它至少在版本1.2中是doesn't appear to workSpring.NET&構造函數攔截器

我也看了兩個IObjectPostProcessor &的IInstantiationAwareObjectPostProcessor,但我找不到任何辦法做到圍繞建設時間在對象上處理......在IInstantiationAwareObjectPostProcessor的PostProcessPropertyValues方法是接近的,但只傳遞通過setter注入的屬性不是構造函數的arg值...

具體而言,我想要的是對實例化後的對象的引用,同時還引用了注入構造函數的對象。有沒有辦法做到這一點,或者是我最好的選擇,只需切換到設置注入&使用後處理器或MethodInterceptor?

+0

你有沒有得到這個工作? – DevelopingChris 2009-11-14 05:32:49

回答

0

AOP建議調用攔截,而不是依賴注入。使用Spring.Net,您可以使用seters或構造函數來執行任何依賴注入。對於你的帖子和評論,它應該工作。

在Spring.Net初始化管道上,第一步分析依賴關係圖,執行任何對象創建並設置所有依賴關係。之後,如果你的類實現了「Spring.Objects.Factory.IInitializingObject」,方法「void AfterPropertiesSet();」叫做。執行該操作的其他方法是使用對象配置,您可以在對象節點上設置init-method。 此行爲基於IoC/DI概念。

也許你需要創建一個特定的工廠對象。要執行該操作,你的工廠必須實現Spring.Objects.Factory.IFactoryObject接口。這有助於容器爲您創建對象創建(此配置上的屬性和構造函數適用於您的工廠)。

最好的問候