Singleton Per ASP.net Session
This is a re-publish of a post from my old blog, but was being requested by a number of people.
A class in my current project is accessed multiple times in a session, and stores error messages that need to be read by multiple classes, so I wanted to make this class a singleton.
However a singleton in asp.net is then available to the whole application, not something I want, as error messages are per user. So after some experimenting, I came up with a simple way to make your singleton a session bound, instance method of singleton:
public singleton Instance {
get {
string name = "singleton";
if (HttpContext.Current.Session[name] == null)
HttpContext.Current.Session[name] = new MyClass();
return (singleton)HttpContext.Current.Session[name];
}
}