这是我想要实施的情况。
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接口)。
实现这一目标的最佳方法是什么?
答案 0 :(得分:1)
我理解你的问题:
在子上下文的Component
实例化之后,应该调用在另一个上下文中定义的ComponentRepository
的Register方法。
据我所知,没有xml-declarative方法可以达到你想要的效果。
我建议您制作ComponentRepository
IApplicationContextAware
(这是您明确不想要的)或创建一个新的IApplicationContextAware
类,它依赖于{{1 }}
这样您就可以调用ComponentRepository
的{{1}}方法并检索所有ApplicationContext
个对象以传递给GetObjectsOfType
。