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