除了 ConfigureService 方法之外,是否可以从控制器或管理器 class 添加服务
Is it possible to add a service from a controller or manager class other than the ConfigureService method
我想使用
services.AddPredictionEnginePool<..>
当我使用“IServiceCollection DI”时,我收到以下通知
无法实例化服务类型 'Microsoft.Extensions.DependencyInjection.IServiceCollection' 的实现类型 'Microsoft.Extensions.DependencyInjection.IServiceCollection'。
我该如何使用它;
services.AddPredictionEnginePool<..>
来自其他 类.
为什么我想做;
使用该服务的原因是在运行时添加一个新对象。
IServiceCollection
是DI容器的配置;你不应该在运行时使用它。最多,人们会使用 IServiceProvider
(将其用作服务定位器),但在使用 DI 时也可以将其视为 anti-pattern。
如果没有关于您要完成的确切事情的更多上下文,我建议使用某种知道如何在运行时创建这些对象的工厂 class(基于某些 data/config), 并在需要的地方注入工厂。
我想使用
services.AddPredictionEnginePool<..>
当我使用“IServiceCollection DI”时,我收到以下通知
无法实例化服务类型 'Microsoft.Extensions.DependencyInjection.IServiceCollection' 的实现类型 'Microsoft.Extensions.DependencyInjection.IServiceCollection'。
我该如何使用它;
services.AddPredictionEnginePool<..>
来自其他 类.
为什么我想做;
使用该服务的原因是在运行时添加一个新对象。
IServiceCollection
是DI容器的配置;你不应该在运行时使用它。最多,人们会使用 IServiceProvider
(将其用作服务定位器),但在使用 DI 时也可以将其视为 anti-pattern。
如果没有关于您要完成的确切事情的更多上下文,我建议使用某种知道如何在运行时创建这些对象的工厂 class(基于某些 data/config), 并在需要的地方注入工厂。