1.首先我们要创建一个静态类
public static class MyHttpContext
{
public static IServiceProvider ServiceProvider;
public static Microsoft.AspNetCore.Http.HttpContext Current
{
get
{
object factory = ServiceProvider.GetService(typeof(Microsoft.AspNetCore.Http.IHttpContextAccessor));
Microsoft.AspNetCore.Http.HttpContext context = ((Microsoft.AspNetCore.Http.HttpContextAccessor)factory).HttpContext;
return context;
}
}
}
2: 然后在startup.cs文件中
在Configure方法 添加
services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
3. 改写ConfigureServices方法 2.0写法
public void Configure(IApplicationBuilder app, IHostingEnvironment env, IServiceProvider svp)
{
///省n多代码
Models.MyHttpContext.ServiceProvider = svp
}
3.X以上写法
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerFactory loggerFactory)
{
MyHttpContext.ServiceProvider = app.ApplicationServices;
}
在Configure方法的参数中加IServiceProvider svp;并在方法体中加 Models.MyHttpContext.ServiceProvider = svp; 其中MyHttpContext和声明的静态类名是一样的;
在程序基础类库中使用MyHttpContext