2011-08-03 66 views
0

在團結,配置類型時,可以指定不止一個typeConfig更多,如果唯一命名的,像這樣:如何在Unity中使用多個typeConfigs?

<type type="IFoo" mapTo="ConcreteFoo"> 
    <typeConfig name="rainbows"> 
     <constructor> 
      <param name="magic" parameterType="string"> 
       <value value="rainbows"/> 
      </param> 
     </constructor> 
    </typeConfig> 
    <typeConfig name="unicorns> 
     <constructor> 
      <param name="magic" parameterType="string"> 
       <value value="unicorns"/> 
      </param> 
     </constructor> 
    </typeConfig> 
</type> 

解決時,你如何指定typeConfig,因此得到什麼注入到構造?

回答

1

供應在DependencyAttribute的名字,像這樣:

[Dependency("unicorns")] 
+0

糾正我,如果我錯了,但不會在課程設計時將ConcreteFoo與特定的TypeConfig聯繫起來,而不是暫時停下來嗎? – CheeZe5

+0

是的,使用DependencyAttribute,屬性成員將在編譯時綁定到「獨角獸」。假設我不明白你的要求。你想如何決定你的構造函數獲得哪個實例? – JohnC

+0

我想弄清楚在運行/解決時如何使用多個typeConfigs。 – CheeZe5

0

當你調用container.Resolve,你可以傳遞一個字符串。該字符串是您用來配置特定註冊的名稱。

另外,當您配置註冊時,您可以在註冊中指定dependencyName以告訴它您希望容器使用哪個命名註冊。