通知父上下文对象有关子上下文对象的创建

时间:2012-02-24 14:06:02

标签: inversion-of-control ioc-container spring.net

这是我想要实施的情况。

public class ComponentRepository 
{
    public void Register(IComponent component) 
    {
        // store component in collection
    }
}
<!-- root context -->    
<object id="Repository" type="NameSpace.ComponentRepository" />

<!-- child context (0 - n contexts) -->
<object id="Component" type="NameSpace.Component"/>

我想用IComponent注册所有ComponentRepository个对象。我想可以使用某种发布/订阅机制来完成,但我想保持我的类干净(不实现任何spring.net接口)。 实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我理解你的问题: 在子上下文的Component实例化之后,应该调用在另一个上下文中定义的ComponentRepository的Register方法。

据我所知,没有xml-declarative方法可以达到你想要的效果。

我建议您制作ComponentRepository IApplicationContextAware(这是您明确不想要的)或创建一个新的IApplicationContextAware类,它依赖于{{1 }}

这样您就可以调用ComponentRepository的{​​{1}}方法并检索所有ApplicationContext个对象以传递给GetObjectsOfType