我有一个统一容器,我在其中注册类型,如下所示:
IUnityContainer container = new UnityContainer()
.RegisterType<ITaxAuthorityRateService, TaxAuthorityPopulationRateService>( "PopulationRate" )
.RegisterType<ITaxAuthorityRateService, TaxAuthorityBusinessLicenseRateService>( "BusinessLicenseRate" );
然后我还想注册 2 个不同的服务,它们在构造函数中采用 ITaxAuthorityRateService 变量。这两种服务都需要派生自 ITaxAuthorityRateService 的不同类。我该如何处理这种情况?
好吧,我想通了。注册期间保持名称相同是正确的(“PopulationRate”和“BusinessLicenseRate”)。我所要做的就是向每个服务的构造函数中的 ItaxAuthorityRateService 参数添加一个属性,如下所示:
Service1构造函数参数:
[Dependency( "BusinessLicenseRate" )]
ITaxAuthorityRateService rateService
Service2构造函数参数:
[Dependency( "PopulationRate" )]
ITaxAuthorityRateService rateService
然后每个服务都会收到正确的 ItaxAuthorityRateService 实例。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)