编程语言
首页 > 编程语言> > c#-通过名称解析

c#-通过名称解析

作者:互联网

我有以下Service类构造函数:

public class Service : IService
{
    private readonly IRepository _repository;

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

    // ...
}

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

有什么办法可以通过Unity来实现?

解决方法:

您可以使用unity config部分来实现此目的.
检查this链接.

在config部分中,您可以指定映射,如下所示.

 <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>

标签:unity-container,c,net
来源: https://codeday.me/bug/20191208/2094738.html