.NET依赖注入获取多个服务实现类

2022-05-24  乐帮网

c# netcore

在.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
    }

}

以上就是全部内容。

公众号二维码

关注我的微信公众号
在公众号里留言交流
投稿邮箱:1052839972@qq.com

庭院深深深几许?杨柳堆烟,帘幕无重数。
玉勒雕鞍游冶处,楼高不见章台路。
雨横风狂三月暮。门掩黄昏,无计留春住。
泪眼问花花不语,乱红飞过秋千去。

欧阳修

付款二维码

如果感觉对您有帮助
欢迎向作者提供捐赠
这将是创作的最大动力