在.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。。。。。。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM