0
我希望能够做到这一点分享温莎城堡单一实例:跨多个组件
<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");
..我得到相同的单例实例,而不是每个组件的单独实例。
这可能吗?
谢谢。
如果你只需要一个组件,为什么要注册两个组件? –
在实际的代码中,组件名称是一个接口名称。我希望能够将ISomething映射到单例实例,并将ISomethingElse映射到同一个实例。 我必须在运行时关闭所有接口名称,所以我需要通过城堡配置查找共享实例。 – Michael
我已经在不使用Castle的情况下解决了这个问题,但如果可能的话我想使用它。它用于缓存,其中N个接口解析为任何给定的缓存实例,因此我可能需要多个组件用于一个单例实例。 – Michael