Unity IOC container and how to resolve different instances of the same interface

你。 提交于 2019-12-18 13:54:04

问题


I have a unity container that I am registering types within like so:

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

Then I also want to register 2 different services that take a ITaxAuthorityRateService variable in their constructor. Both services need a different class that derives from ITaxAuthorityRateService. How can I handle that situation?


回答1:


Ok I figured it out. Keeping the names the same during registration is correct ("PopulationRate" and "BusinessLicenseRate"). All I had to do was add an attribute to the ITaxAuthorityRateService parameter within the constructor of each service like so:

Service1 constructor parameter:

[Dependency( "BusinessLicenseRate" )]
ITaxAuthorityRateService rateService

Service2 constructor parameter:

[Dependency( "PopulationRate" )]
ITaxAuthorityRateService rateService

And then each service received the correct ITaxAuthorityRateService instance.



来源:https://stackoverflow.com/questions/2343532/unity-ioc-container-and-how-to-resolve-different-instances-of-the-same-interface

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!