Asp.Net Core 框架的目的之一就是为了跨平台,要跨平台就必须跳出依赖于Windows底层的dll,那么framework框架很多函数库就无法使用了,就必须重新使用新的方式

1、创建一个自定义助手类

  •  代码
public static class HttpContext
{
private static Microsoft.AspNetCore.Http.IHttpContextAccessor _httpContextAccessor;


public static void Init(Microsoft.AspNetCore.Http.IHttpContextAccessor httpContextAccessor)
{
_httpContextAccessor = httpContextAccessor;
}


public static Microsoft.AspNetCore.Http.HttpContext Current
{
get
{
if (_httpContextAccessor == null) return null;

return _httpContextAccessor.HttpContext;
}
}
}

 2、启动类进行配置服务和配置应用

  • 配置服务代码
public IServiceProvider ConfigureServices(IServiceCollection services)
{
//...

services.AddHttpContextAccessor();

//...
}

  • 配置代码
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//...


HttpContextHelper.HttpContext.Init(app.ApplicationServices.GetRequiredService<IHttpContextAccessor>()); //配置在standard项目也可以获取

//...
}