Pregunta

La siguiente es la forma en que normalmente manipular objetos en el estado de sesión, tengo una cadena const como el nombre de la sesión y luego tener una propiedad con un get y set para el objeto.

Lo que me preguntaba era si el 'Session.Remove ()' llamada era necesario (para mantener las cosas limpias y ordenadas) y si había una sobrecarga significativa y hacer esta eliminación.

Tengo la Session.Remove existen básicamente porque me hace sentir mejor (TOC sé), y me hace sentir que la sesión es más limpio, pero me gustaría saber si no es necesario.

private const string sesMyObject = "{C2CC72C3-1466-42D4-8579-CAA11F261D55}";
public MyObject MyObjectProperty
{
    get
    {
        return Session[sesMyObject] as MyObject;
    }
    set
    {
        Session.Remove(sesMyObject);
        Session.Add(sesMyObject, value);
    }
}

Editar por las respuestas a continuación he cambiado de propiedades a lo siguiente:

private const string sesMyObject = "{C2CC72C3-1466-42D4-8579-CAA11F261D55}";
public MyObject MyObjectProperty
{
    get
    {
        return Session[sesMyObject] as MyObject;
    }
    set
    {
        Session[sesMyObject] = value;
    }
}

Gracias!

¿Fue útil?

Solución

Si realmente quieren ser seguro, intente convertir el objeto a una IDisposable, y si tiene éxito, llamar a Dispose.

IDisposable sesDispObj =  Session[sesMyObject] as IDisposable;
if (sesDispObj != null)
   sesDispObj.Dispose();

Aparte de eso,

 Session[sesMyObject] = value

es más o menos lo mismo que

 Session.Remove(sesMyObject);        
 Session.Add(sesMyObject, value);

Otros consejos

Es una exageración. Refering MSDN

  

Si el parámetro de nombre se refiere a una   elemento del estado de sesión existente, el   elemento existente se sobrescribe con el   valor especificado.

Session[sesMyObject] = value;

es más corto, más fácil de leer, y deben tener un rendimiento ligeramente mejor, pero a menos que el código se repite muchas veces en sucesión, no debe hacer una diferencia.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top