Visual Studio .NET 2002.NET 1.0Visual Studio .NET 2003WebForms.NET 1.1.NET 3.0Visual Studio 2005.NET 2.0C# 2.0BeginnerC# 3.0DevVisual StudioWindows.NETASP.NETC#
How to build a simple Session State Sink






2.09/5 (4 votes)
Allows you to easily manage your Session without casting, and removes redundant code.
Introduction
This code is just to:
- Keep all of your Session management in one place.
- Allow you to remember what your Session variables are.
- Simplify code.
Using the code
The normal way to access the Session in a page is like this. Note that there is no intellisense, and that you will need to cast it every time you want to get it.
Week week = (Week) Session["Week"];
Here's what I'm changing it to. Note that intellisense is available to see what variables are kept in the Session.
Week week = SessionStateSink.Week;
Plant plant = SessionStateSink.Plant;
Here is the (static) Session State Sink:
using System.Web.SessionState;
public static class SessionStateSink {
// Getting Current Session --> This is needed, since otherwise
// the static sink won't know what the session is.
private static HttpSessionState Session{
get {return HttpContext.Current.Session; }
}
// Session Variable - Auto-Create
public static Week Week {
get {
if (Session["Week"] == null) {
Session.Add("Week",new Week());
}
return (Week)Session["Week"];
}
}
//Session Variable - Get/Set
public static Plant Plant {
get {
return (Plant)Session["Plant"];
}
set{
if (Session["Plant"] == null)
Session.Add("Plant",value);
else
Session["Plant"] = value;
}
}
}
Overall, this mostly just makes the code a little cleaner and easier to manage.