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

1.首先我们要创建一个静态类

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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方法

1
2
3
4
5
6
7
public void Configure(IApplicationBuilder app, IHostingEnvironment env,  IServiceProvider svp)
      {
      ///省n多代码
 
     Models.MyHttpContext.ServiceProvider = svp
 
} <br>

 在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

 

posted @     阅读(440)  评论(0编辑  收藏  举报
编辑推荐:
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
阅读排行:
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
点击右上角即可分享
微信分享提示