1. 程式人生 > >【轉】在.net Core 中像以前那樣的使用HttpContext.Current

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

single .get soft ESS contex vid pro del 文件中

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方法

public void Configure(IApplicationBuilder app, IHostingEnvironment env,  IServiceProvider svp)
      {
      ///省n多代碼

     Models.MyHttpContext.ServiceProvider = svp

} 

在Configure方法的參數中加IServiceProvider svp;並在方法體中加 Models.MyHttpContext.ServiceProvider = svp; 其中MyHttpContext和聲明的靜態類名是一樣的;

在程序中使用存儲session就可以用 Models.MyHttpContext.Current.Session.Set("key", "value");

當然也可以把類名MyHttpContext改成HttpContext這樣在程序中就是Models.HttpContext.Current.Session.Set("key", value”)和之前的asp.net使用時一樣的;

轉自:https://www.cnblogs.com/DSC1991/p/9240327.html

https://www.cnblogs.com/zhangkjun/p/6143388.html

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