如何在 vnext 启动文件中为一个服务添加多个实现?
How to add multiple implementations to one service in vnext startup file?
目前我的启动文件中有这样的东西:
services.AddTransient<ISomeService, SomeService>();
按预期工作。但是,我需要在此实现中使用其他服务,例如
其他服务。有没有办法将两者添加到一项服务中?
即我有这个:
public SomeController(ILoggerFactory factory, ISomeService someService)
我想要这个:
public SomeController(ILoggerFactory factory, ISomeService someService, ISomeOtherService someOtherService)
这可能吗,还是我应该换一种方式?
多次调用AddTransient
:)
services.AddTransient<ISomeService, SomeService>();
services.AddTransient<ISomeService, SomeOtherService>();
更新问题的答案:
添加一个IEnumerable<T>
参数:
public SomeController(ILoggerFactory factory, IEnumerable<ISomeService> multipleServices)
目前我的启动文件中有这样的东西:
services.AddTransient<ISomeService, SomeService>();
按预期工作。但是,我需要在此实现中使用其他服务,例如 其他服务。有没有办法将两者添加到一项服务中?
即我有这个:
public SomeController(ILoggerFactory factory, ISomeService someService)
我想要这个:
public SomeController(ILoggerFactory factory, ISomeService someService, ISomeOtherService someOtherService)
这可能吗,还是我应该换一种方式?
多次调用AddTransient
:)
services.AddTransient<ISomeService, SomeService>();
services.AddTransient<ISomeService, SomeOtherService>();
更新问题的答案:
添加一个IEnumerable<T>
参数:
public SomeController(ILoggerFactory factory, IEnumerable<ISomeService> multipleServices)