欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-12-25 07:57:59
1.首先我们要创建一个静态类 2: 然后在startup.cs文件中 在Configure方法 添加 3. 改写ConfigureServices方法 ......

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使用时一样的;