No meu aplicativo da web, faço algo assim para ler as variáveis da sessão:
if (HttpContext.Current.Session != null && HttpContext.Current.Session["MyVariable"] != null)
{
string myVariable= (string)HttpContext.Current.Session["MyVariable"];
}
Entendo por que é importante verificar por que o HttpContext.Current.Session ["MyVariable"] é nulo (a variável pode ainda não ter sido armazenada na sessão ou a sessão foi redefinida por vários motivos), mas por que preciso verificar se HttpContext.Current.Session
é nulo?
Meu entendimento é que a sessão é criada automaticamente pelo ASP.NET, portanto, HttpContext.Current.Session nunca deve ser nulo. Essa suposição está correta? Se puder ser nulo, significa que eu também devo verificá-lo antes de armazenar algo nele:
if (HttpContext.Current.Session != null)
{
HttpContext.Current.Session["MyVariable"]="Test";
}
else
{
// What should be done in this case (if session is null)?
// Is it possible to force the session to be created if it doesn't exist?
}