在.net Core 中像以前那样的使用HttpContext.Current
今晚在学习.net Core 的使用 拿来以前项目进行改造最简单的问题就是怎么做到让httpcontext 和以前兼容 ,折腾的很久 终于搞定,纪录一下
.net core中使用了无处不在的注入,看了站长大人关于注入的文章恍然大悟。解决方法如下:
1:首先在 我们创建一个静态类 MyHttpContext
public static class MyHttpContext { public static IServiceProvider ServiceProvider; static MyHttpContext() { } public static HttpContext Current { get { object factory = ServiceProvider.GetService(typeof(Microsoft.AspNetCore.Http.IHttpContextAccessor)); HttpContext context = ((HttpContextAccessor)factory).HttpContext; return context; } }
2: 然后在startup.cs文件中
在Configure方法 添加
services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();
改写ConfigureServices方法
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider svp) { ///省n多代码 System.Web.NewHttpContext.ServiceProvider = svp; }
ok 终于可以和以前那样 直接在项目中使用 HtppContext。。。。。。