在.NET中我们可以定义接口的多种实现,可以多次注入,但是在使用时候会发现它只会默认获取最后一次注入的实现类。这个自然是没有什么问题,但是当我们想要获取到其它实现时可以利用以下方法来实现:
例如接口 

public interface IDemoService
{
    void Run();
}

(1)通过总接口IServiceProvider 来获取

public void Resolve(IServiceProvider provider)
{
    foreach (var sv in provider.GetServices<IDemoService>())
    {
       //to do
    }

}

(2)通过获取IEnumerable来实现

public void Resolve(IEnumerable<IDemoService> svs)
{
    foreach (var sv in svs)
    {
       //to do
    }

}

以上就是全部内容。