【问题标题】:Unity IOC container and how to resolve different instances of the same interfaceUnity IOC容器以及如何解析同一接口的不同实例
【发布时间】:2010-02-26 17:30:31
【问题描述】:

我有一个统一容器,我在其中注册类型,如下所示:

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

然后我还想注册 2 个不同的服务,它们在其构造函数中采用 ItaxAuthorityRateService 变量。两种服务都需要派生自 ITaxAuthorityRateService 的不同类。我该如何处理这种情况?

【问题讨论】:

    标签: unity-container ioc-container


    【解决方案1】:

    好的,我想通了。在注册期间保持名称相同是正确的(“PopulationRate”和“BusinessLicenseRate”)。我所要做的就是在每个服务的构造函数中为 ITaxAuthorityRateService 参数添加一个属性,如下所示:

    Service1构造函数参数:

    [Dependency( "BusinessLicenseRate" )]
    ITaxAuthorityRateService rateService
    

    Service2构造函数参数:

    [Dependency( "PopulationRate" )]
    ITaxAuthorityRateService rateService
    

    然后每个服务都会收到正确的 ItaxAuthorityRateService 实例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-15
      • 1970-01-01
      • 2015-08-05
      • 2023-03-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多