在.net Core 中像之前那样的使用HttpContext.Current

今晚在学习.net Core 的使用 拿来之前项目进行改造最简单的问题就是怎么作到让httpcontext 和之前兼容 ,折腾的好久 终于搞定,纪录一下app

.net core中使用了无处不在的注入,看了站长大人关于注入的文章恍然大悟。解决方法以下:ide

 

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文件中ui

  在Configure方法 添加.net

services.TryAddSingleton<IHttpContextAccessor, HttpContextAccessor>();

  

 改写ConfigureServices方法 blog

  

  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory, IServiceProvider svp)
        {
        ///省n多代码
            System.Web.NewHttpContext.ServiceProvider = svp;
    }        

  

ok 终于能够和之前那样 直接在项目中使用 HtppContext。。。。。。get

相关文章
相关标签/搜索