asp.net core 如何通过服务定位器的方式获取注入的服务

发布时间 2023-10-24 09:53:33作者: LiXiang98
1、在Controller中可以通过HttpContext获取Services,然后获取到注入的服务
var hostEnvironment2 = HttpContext.RequestServices.GetRequiredService<IHostEnvironment>();

2、利用静态类方式获取

Public Static Class ServiceLocator
{
    public static IServiceProvider Instance{get;set;}
}

// 在program.cs中给ServiceLocator.Instance赋值
ServiceLocator.Instance = app.Services;


//其他地方使用
var test = ServiceLocator.Instance.GetService<ITestService>();

参考:https://blog.csdn.net/WuLex/article/details/122142832