我希望能够做到这一点:
<component id="Component1" service="Foo.IFoo, Foo" type="Foo.Bar, Foo" lifestyle="singleton" />
<component id="Component2" service="Foo.IFoo, Foo" type="Foo.Bar, Foo" lifestyle="singleton" />
这样当我这样做时:
IFoo foo = m_container.Resolve<IFoo>("Component1");
或者这个:
IFoo foo = m_container.Resolve<IFoo>("Component2");
..我得到了相同的单例实例,而不是每个组件的单独实例。
这可能吗?
感谢。
答案 0 :(得分:0)
如果您拥有的只是运行时的“名称”界面,那么您打算如何调用通用的Resolve&lt;&gt;在windsor容器上的方法?如果你真的只想要一个IFoo的单例实例而不管comopnent“Name”,那么只需将一个注册为一个单例并调用:
IFoo foo = m_container.Resolve<IFoo>();
如果您希望让多个接口返回相同的组件,您可以使用转发类型查看。