加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何在抽象类的静态属性中使用HttpContext.Current.Sessio

发布时间:2020-12-16 01:56:50 所属栏目:百科 来源:网络整理
导读:我有一个ControllerBase抽象类,如下所示. using System.Web;using System.Web.Mvc;public abstract class ControllerBase : Controller{ public static string SesssionId { get { return HttpContext.Current.Session["SessionId"]; } }} 我收到了错误 “ob
我有一个ControllerBase抽象类,如下所示.

using System.Web;
using System.Web.Mvc;
public abstract class ControllerBase : Controller
{
    public static string SesssionId
    {
         get { return HttpContext.Current.Session["SessionId"]; }
    }
}

我收到了错误

“object reference is required for the non-static field,method,or
property ‘System.Web.Mvc.Controller.HttpContext.get”

但是我在其他静态类中使用了相同的并且没有出现上述错误.

我想知道HttpContext是如何可访问的而不是当前的.

谁能澄清我,上面有什么问题.

解决方法

您的基类Controller指定一个 HttpContext属性本身.
因此,在派生类ControllerBase中使用它时,编译器认为您要引用基类的此属性.

您可以使该属性非静态,如Wudzik在第一条评论中所建议的那样.
我想这将是更清洁的方式.

如果需要将此属性保持为静态,则必须告诉编译器,您要使用命名空间System.Web的HttpContext类:

public static string SesssionId
{
     get { return System.Web.HttpContext.Current.Session["SessionId"]; }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读