0
假設我有兩種類型,TypeA和TypeB,我想在Unity中註冊。 TypeB依賴於TypeA,所以我想通過構造器注入將TypeA注入到B類型中。所以我想寫點東西像下面並有統一足夠聰明,級聯的分辨率對我來說:Unity中級聯分辨率
_container.RegisterType<ITypeA, TypeA>();
_container.RegisterType<ITypeB, TypeB>();
我怎麼能告訴統一解決類型A和注入的TypeB?
它看起來像如果使用配置文件,這是可能的,但我不知道你會怎麼做programmaticaly:
<type name="typeB" type="ITypeB" mapTo="TypeB">
<lifetime type="Singleton"/>
<typeConfig extensionType="...">
<constructor>
<param name="typeA" parameterType="ITypeA">
<dependency/>
</param>
</constructor>
</typeConfig>
</type>
在此先感謝您的任何建議!
編輯:所以,Unity不會爲我處理這個。不過,我覺得我的問題是,我有兩個構造函數的類:
public TypeB(TypeA typeA)
{
_x = typeA;
}
public TypeB() : this(Something.Value)
{
}
看來,統一是有問題的瞭解需要使用的構造函數。第一個構造函數用於單元測試,第二個構造函數應該在運行時使用。 Unity對此有困難。