访问会话对象
本文关键字:对象 会话 访问 | 更新日期: 2023-09-27 18:29:08
为什么我可以访问System.Web.UI.Page实例中Page_Load方法中的Session对象,但在其他地方却不能访问?
public partial class Statystyki : System.Web.UI.Page
{
// Session object not allowed here
protected void Page_Load (object sender, EventArgs e)
{
// but allowed here
}
}
并且在自定义类中是不允许的。如何从自己的类中获取对此对象的引用?
您可以在类似的自定义类中访问它
HttpContext.Current.Session["Key"]
Session属性是在Page对象构建页面生命周期之后设置的。
从本质上讲,您得到的错误与页面生命周期无关——简单地说,字段初始化程序不允许访问正在创建的对象的其他字段/属性。
来自C#规范10.5.5.2实例字段初始化:
实例字段的变量初始值设定项不能引用正在创建的实例。因此,引用它是一个编译时错误这在变量初始值设定项中,因为这是变量初始值设定项通过简单的名称。在示例类A{int x=1;int y=x+1//错误,引用变量初始值设定项"的实例成员for y会导致编译时错误,因为它引用了一个成员正在创建的实例的。