2010-02-26 76 views
1

我有一個統一的容器,我內像這樣註冊類型:團結IOC容器以及如何解決同一接口的不同實例

IUnityContainer container = new UnityContainer() 
.RegisterType<ITaxAuthorityRateService, TaxAuthorityPopulationRateService>("PopulationRate") 
.RegisterType<ITaxAuthorityRateService, TaxAuthorityBusinessLicenseRateService>("BusinessLicenseRate"); 

然後我也想註冊一個採取ITaxAuthorityRateService 2個不同的服務變量在它們的構造函數中。這兩種服務都需要一個從ITaxAuthorityRateService派生出來的不同類。我該如何處理這種情況?

回答

9

好吧我想通了。在註冊過程中保持名稱相同(「PopulationRate」和「BusinessLicenseRate」)。我所要做的就是每個服務的構造函數中添加屬性到ITaxAuthorityRateService參數,像這樣:

服務1構造函數的參數:

[Dependency("BusinessLicenseRate")] 
ITaxAuthorityRateService rateService 

客服2構造函數的參數:

[Dependency("PopulationRate")] 
ITaxAuthorityRateService rateService 

然後每個服務都收到了正確的ITaxAuthorityRateService實例。

相關問題