如何按实现类型解析服务?

时间:2018-07-27 12:54:47

标签: asp.net-core .net-core

假设我具有以下设置:

interface IDoSomething { }

class Something : IDoSomething { }

class AnotherThing : IDoSomething { }

我用这样的内置DI容器注册类:

services.AddTransient<IDoSomething, Something>();
services.AddTransient<IDoSomething, AnotherThing>();

通过注入IEnumerable ,我可以很好地解决这两个问题。但是,我需要一种通过实现类型来解决特定问题的方法。像这样:

var x = serviceProvider.GetService<Something>();   

(其中serviceProvider是IServiceProvider)

但是,它总是返回null。

如果我添加以下注册,则效果很好:

services.AddTransient<Something>();

有没有一种方法可以通过实现类型来解决依赖关系而不必两次注册该类型(一次可以通过接口来解决,而另一个可以通过实现类型来解决)?

0 个答案:

没有答案