假设我具有以下设置:
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>();
有没有一种方法可以通过实现类型来解决依赖关系而不必两次注册该类型(一次可以通过接口来解决,而另一个可以通过实现类型来解决)?