2009-04-08 56 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接口。这有助于容器为您创建对象创建(此配置上的属性和构造函数适用于您的工厂)。

最好的问候