如何从 IServiceProvider.GetServices<T> (aspnet core DI)按基本类型获取实例?

Voi*_*ame 5 dependency-injection asp.net-core-2.2

我想获取MyBaseClass从 IServiceProvider 继承的所有服务:

var myBaseClassInstances = serviceProvider.GetServices<MyBaseClass>();
Run Code Online (Sandbox Code Playgroud)

我可以将所有派生类注册为:

services.AddSingleton<InheritedFromMyBaseClass>();
services.AddSingleton<MyBaseClass>(serviceProvider => serviceProvider.GetService<InheritedFromMyBaseClass>());
Run Code Online (Sandbox Code Playgroud)

有什么方法可以通过一次注册来做到这一点吗?

Ric*_*res 4

.NET Core 附带的依赖注入不允许开箱即用,您需要推出自定义扩展方法。