从System.Web.UI.Page继承时,Session为null

And*_* K. 3 c# asp.net inheritance

我想用一些额外的东西扩展System.Web.UI.Page类.在ctor我需要一个session-variable的值.

问题是Session-object为null ...

public class ExtendedPage : System.Web.UI.Page {
   protected foo;   

   public ExtendedPage() {
      this.foo = (int)HttpContext.Current.Session["foo"];   // NullReferenceException
   }
}
Run Code Online (Sandbox Code Playgroud)

如果我将带有session-object的部分移动到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"];
   }
}
Run Code Online (Sandbox Code Playgroud)

为什么第一种情况下Session-object为null

SLa*_*aks 5

Session属性是在以后设置页面的生命周期中,后Page对象被构造.