我正嘗試第一次使用Unity,我想我可能會咬掉比我可以咀嚼的更多。我們有一個n層應用程序,它有一個包含多個抽象類型的基本庫,然後包含幾個具有特定類型的業務情景特定庫。例如:抽象類型主角有兩個實現,一個在NewAutomotiveLibrary中稱爲NewAutomotiveLead,另一個在AutomotiveFinanceLibrary中稱爲AutomotiveFinanceLead。在基本庫中,我們有一組適配器,可以像Lead一樣在基本類型上執行邏輯。Unity新手問題
我試圖用統一的第一次返回的接口ILeadDuplication,當解決了,要麼返回或NewAutomotiveLeadDuplication時AutomotiveFinanceLeadDuplication我呼籲ILeadDuplication決心和實例通過其中任一「NewAutomotive」的字符串值或「AutomotiveFinance」(在容器上調用RegisterType時映射的名稱)。像這樣:
using (IUnityContainer container = new UnityContainer())
{
container
.RegisterType<ILeadDuplication, AutomotiveFinanceLeadDuplication>("AutomotiveFinance")
.RegisterType<ILeadDuplication, NewAutomotiveLeadDuplication>("NewAutomotive");
ILeadDuplication dupe = container.Resolve<ILeadDuplication>("AutomotiveFinance");
Console.WriteLine(dupe.Created);
}
注意:這是爲了說明,因爲庫不知道的有關ILeadDuplication實際登記需要在配置文件中做了concreate類的任何信息。
雖然這一切的偉大工程,我需要把它更進了一步。在調用resolve時,我需要能夠傳入Lead類型的參數,這是NewAutomotiveLead或AutomotiveFinanceLead的基類型。
我需要知道Unity是否可能神奇地查找具體到具體實例AutomotiveFinanceLead的特性,例如Lead上不存在的「GrossMonthlyIncome」,並將其分配給新創建的AutomotiveFinanceLeadDuplication實例屬性GrossMonthlyIncome。
我有效希望能夠在基礎庫對ILeadDuplication的實例進行了一組通用的邏輯甚至認爲產生的實例和被映射屬性不熟悉它。
謝謝!