【问题标题】:Unity resolving by nameUnity 按名称解析
【发布时间】:2010-12-24 15:11:15
【问题描述】:

我有以下服务类构造函数:

public class Service : IService
{
    private readonly IRepository _repository;

    public Service(IRepository repository)
    {
        _repository = repository;
    }

    // ...
}

IRepository 有两个命名实现。我想解决 IService 但需要设置应该使用哪个 IRepository 实现(服务应该是灵活的,我不能将 Dependency 属性放入 IRepository 构造函数参数)。

Unity有什么方法可以实现吗?

【问题讨论】:

    标签: c# .net unity-container


    【解决方案1】:

    您可以使用统一配置部分来实现此目的。 检查this链接。

    在配置部分,您可以按如下方式指定映射。

     <type type="IMyService" mapTo="MyDataService" name="DataService">
          <typeConfig extensionType="Microsoft.Practices.Unity.Configuration.TypeInjectionElement,
                                     Microsoft.Practices.Unity.Configuration">
            <constructor>
              <param name="connectionString" parameterType="string">
                <value value="AdventureWorks"/>
              </param>
              <param name="logger" parameterType="ILogger">
                <dependency />
              </param>
            </constructor> 
            <property name="Logger" propertyType="ILogger" />
            <method name="Initialize">
              <param name="connectionString" parameterType="string">
                <value value="contoso"/>
              </param>
              <param name="dataService" parameterType="IMyService">
                <dependency />
              </param>
            </method>
          </typeConfig>
        </type>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-08
      • 1970-01-01
      • 1970-01-01
      • 2011-02-27
      • 1970-01-01
      相关资源
      最近更新 更多