Asp.net core ASP.NET核心DI直接访问容器
是否有一种直接从类访问ASP.NET Core的DI容器的方法 通常所做的是构造函数注入:Asp.net core ASP.NET核心DI直接访问容器,asp.net-core,Asp.net Core,是否有一种直接从类访问ASP.NET Core的DI容器的方法 通常所做的是构造函数注入: public class ProductsController : Controller { public ProductsController(ISomeService service) { } } 相反,我想做如下事情: var service = ServiceLocator.GetService<ISomeService>(); var service=S
public class ProductsController : Controller
{
public ProductsController(ISomeService service)
{
}
}
相反,我想做如下事情:
var service = ServiceLocator.GetService<ISomeService>();
var service=ServiceLocator.GetService();
对于某些服务,我不想使用默认构造函数注入,而是直接从容器获取服务。它被称为服务定位器模式,可以通过注入IServiceProvider来完成
public class ProductsController : Controller
{
public ProductsController(IServiceProvider services)
{
var service = services.GetService<ISomeService>();
}
}
公共类产品控制器:控制器
{
公共产品控制员(IServiceProvider服务)
{
var service=services.GetService();
}
}
这是一篇很好的文章,其中介绍了不同的策略是的,但是如果你不能使用注射怎么办。我有一个后台任务调度程序,它不支持DI,所以我必须手动装箱服务。。。有什么想法吗?