在.net Core 中像以前那樣的使用 HttpContext.Current

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 

 

發佈了88 篇原創文章 · 獲贊 16 · 訪問量 26萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章