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

 

转载于:https://www.cnblogs.com/SpeakHero/p/6127883.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值