Frage

Das Folgende ist, wie ich normalerweise Objekte im Sitzungsstatus behandle. Ich habe eine Const -Zeichenfolge als Sitzungsname und dann eine Eigenschaft mit einem Get and Set für das Objekt.

Ich fragte mich, ob die "Session

Ich habe die Sitzung. Beachten Sie dort im Grunde, weil ich mich besser fühle (OCD ich kenne) und ich habe das Gefühl, dass die Sitzung sauberer ist, aber ich würde gerne wissen, ob sie nicht benötigt wird.

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);
    }
}

BEARBEITENGemäß den folgenden Antworten habe ich meine Eigenschaften in Folgendes geändert:

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

Danke!

War es hilfreich?

Lösung

Wenn du Ja wirklich Wenn Sie sicher sein möchten, versuchen Sie, das Objekt in eine idisposable zu konvertieren, und wenn es erfolgreich ist, rufen Sie an.

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

Anders als das,

 Session[sesMyObject] = value

ist so ziemlich gleich wie

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

Andere Tipps

Es ist übertrieben. Beziehen Msdn

Wenn sich der Name Parameter auf ein vorhandenes Sitzungsstatuselement bezieht, wird das vorhandene Element mit dem angegebenen Wert überschrieben.

Session[sesMyObject] = value;

ist kürzer, einfacher zu lesen und sollte eine etwas bessere Leistung haben, aber wenn dieser Code nicht mehrmals nacheinander wiederholt wird, sollte er keinen Unterschied machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top