3

I want to extend the System.Web.UI.Page-class with some extra stuff. In the ctor I need the value of a session-variable.

The problem is that the Session-object is null...

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

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

If I move the part with the session-object into the Load-Event everything works fine...

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"];
   }
}

Why is the Session-object null in the first case??

2 Answers 2

5

The Session property is set later in the Page lifecycle, after the Page object is constructed.

Sign up to request clarification or add additional context in comments.

1 Comment

Do you mean that it's not set at construction but is set before page load? (I think in pre-init.)
0

You have to inherit the ExtendedPage class in an .aspx Page.

It will have Session when run in the HttpContext

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.