Ant*_*ton 15 c# asp.net-core-mvc
如何获得这样的新DI支持注入?
public class Thing{
public Thing(IList<IService> someServices) {
...
}
}
public class ServiceA : IService { }
public class ServiceB : IService { }
public class ServiceB : IService { }
public class Startup {
...
public void ConfigureServices(IServiceCollection services)
{
services.AddTransient<IService, ServiceA>()
.AddTransient<IService, ServiceB>()
.AddTransient<IService, ServiceC>();
}
}
Run Code Online (Sandbox Code Playgroud)
Gab*_*nha 16
从ASP.NET Core 2.0开始,如果您注入依赖项IEnumerable<IService>而不是注入依赖项IList<IService>,则可以放弃注册列表本身,只留下单独的服务注册.
懂了(简体)
.AddTransient(p => p.GetServices<IService>())
Run Code Online (Sandbox Code Playgroud)
但是您必须完全符合ctor的期望
.AddTransient<IList<IService>>(p => p.GetServices<IService>().ToList())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2872 次 |
| 最近记录: |