2009-12-12 94 views
1

另一個開發人員,今天有這樣的談話:解析具有相同接口的兩個參數的構造函數?

我:依賴注入很酷,哈哈。

丹尼斯:當我需要DoStuff類的一個實例,我唯一的構造會發生什麼事是DoStuff(ISomeInterface接口1,ISomeInterface接口2),其中的具體類型是完全不同的?

我: ...

我們用團結作爲我們的首選容器。當我需要解析ISomeInterface時,如何註冊具體類型可以是兩種不同的類型?

+2

雖然可以解決這種情況,但您可能希望重新考慮這樣的構造函數,並將其重構爲不太模糊的東西。 – 2009-12-12 15:30:59

回答

3

查看ParameterOverride類。它允許您按名稱指定參數:

container.Resolve<IDoStuff>(new ParameterOverrides<DoStuff> { { "interface1", new SomeInterfaceImpl() }, { "interface2", AnotherSomeInterfaceImpl() } }); 
相關問題