2009-02-26 9 views
2

Wenn ich einen Zeichenfolge-Wert in meiner Sitzungsvariablen speichern, muss ich es serialisieren oder deserialisieren? Ich habe gelesen, dass, wenn Sie Ihren Einsatz in web.configSpeichern von Zeichenfolge in Sitzungsvariable, wo Modus ist StateServer

<sessionState mode="StateServer" 
       stateConnectionString="tcpip=127.0.0.1:42424" 
       stateNetworkTimeOut="60" 
/> 

Sie müssen serialisiert werden, bevor Sie den Wert in Session-Variablen speichern kann, und Sie würden dann deserialisieren, wenn Sie den Wert abrufen. Ich frage mich, wenn Sie zum Beispiel nur den String-Wert auf eine Sitzung setzen wie:

Session("MyStringVar") = "MyStringValue" 

und wenn Sie es abrufen, können Sie einfach tun:

DIm strVal as String 
strVal = Ctype(Session("MyStringVar"), String) 

Auch das Timeout für das angegebene ist 60, ist es in Minuten oder Stunden?

Danke.

Antwort

1

Nein. Die .net-Laufzeit wird sich um all das kümmern.

Sie müssten jedoch Ihre eigene Serialisierung durchführen, wenn Sie ein Objekt speichern, das nicht als serialisierbar gekennzeichnet ist. Der Zeitüberschreitungswert ist in Minuten angegeben.

+0

Solange ein Objekt serialisierbar ist, müssen Sie nichts Spezielles tun, um es in Session zu speichern, und auf technischer Ebene ist eine Zeichenfolge nur ein anderer Objekttyp. – andleer

+0

@Andrew: Du hast Recht. Nachdem ich meine Antwort erneut gelesen hatte, benutzte ich offensichtlich nicht die richtigen Worte. – NotMe

1

Für die web.config sollten Sie tun können: Sie tun können, wenn es nicht um eine Zeichenfolge, ersetzen String mit Objekttyp ...

String myValue = ConfigurationManager.AppSettings["MyValue"].ToString(); 

Für die Session und einem String-Wert:

Verwandte Themen