我想用一些额外的东西扩展System.Web.UI.Page-class。
在ctor中,我需要一个会话变量的值。
问题是会话对象为空...
public class ExtendedPage : System.Web.UI.Page {
protected foo;
public ExtendedPage() {
this.foo = (int)HttpContext.Current.Session["foo"]; // NullReferenceException
}
}
如果我将带有会话对象的部分移到Load-Event中,则一切正常。
public class ExtendedPage : System.Web.UI.Page {
protected foo;
public ExtendedPage() {
this.Load += new EventHandler(ExtendedPage_Load);
}
void ExtendedPage_Load(object sender, EventArgs e) {
this.foo = (int)HttpContext.Current.Session["foo"];
}
}
为什么在第一种情况下会话对象为null?
最佳答案
在构造Session
对象之后,将在Page lifecycle中设置Page
属性。