私は以下のコードをGET辞書型のセッション変数値にしました。私のコードでは以下のコード辞書型セッション変数の値を設定する方法は?
を参照してください、私はちょうど私のセッション変数から任意の値を取得するためのコードの下に使用します。
string panelOpen = SessionDictionary.GetValue("FORMDATA", "panelOpen");
public class SessionDictionary
{
public static string GetValue(string dictionaryName, string key)
{
string value = string.Empty;
try
{
if (HttpContext.Current.Session[dictionaryName] != null)
{
Dictionary<string, string> form = (Dictionary<string, string>)HttpContext.Current.Session[dictionaryName];
if (form.ContainsKey(key))
{
if (!string.IsNullOrEmpty(key))
{
value = form[key];
}
}
}
}
catch (Exception ex)
{
Logger.Error("{0}: Error while checking Session value from Dictionary", ex, "SessionDictionary");
}
return value;
}
}
は今、私は特定のセッションキーの値を設定するための方法を書きたいです、たとえば、
私がもう一度下のコードに行くと、私のpanelOpenキーに "First"が表示されます。
string panelOpen = SessionDictionary.GetValue("FORMDATA", "panelOpen");
お勧めします!
なぜあなたが最初の(キー)にContainsKeyを行っていると*:
は値を削除する値
を設定しますか?私はそれらのテストが逆転すると期待します。 –
SessionStateでDictionaryを使用するときは、シリアル化できないので注意してください。セッションでSQL永続性を使用すると、スケーラビリティの問題が生じる可能性があります。http://stackoverflow.com/questions/4854406/serialization-of-dictionaryおよびhttp://support.microsoft.com/kb/311209 – StuartLC
@nonnb ASPがオブジェクトが 'IXMLSerialiable'を実装することを要求しますか?そうであれば、どのようにして辞書をセッションに保存することができますか? –