Sitzungsstatus Entfernen und Hinzufügen von Overheads
-
21-08-2019 - |
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!
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.