繁体   English   中英

序列化json字符串中的会话对象

[英]serializing session object in json string

我建立了一个强类型的会话对象,如下所示:

class MySession
{
  public string UsedID {get;set;}
  public List<int> ListOfInt {get;set;}
  public List<string ListOfString {get;set;}
  .....
}

我当前正在使用InProc会话,因此当页面加载时,我写:

MySession TheSession = Session["UserSession"] as MySession;

然后在代码后面,我可以使用TheSession.XYZ语法访问每个属性。

这确实很酷,但我认为将会话存储在数据库中可能会更好。

我正在考虑序列化json字符串中的MySession对象,并将该字符串存储在数据库中,以便在页面加载时可以检索和反序列化该数据库。

这是一个好方法吗?

感谢您的建议。

ASP.NET会话状态服务器与InProc会话讨论了使用状态服务器或进程内会话存储的优缺点。

至于使用JSON,它肯定比XML轻巧,并且几乎一样灵活-至少出于您的目的。 我认为没有理由不这样做。

首先,确保您需要Session中的所有数据。 我认为您宁愿创建数据库表并将数据存储在表中。

如果确定需要Session,则可以使用标准的<sessionState mode="SQLServer"> 您可以在此处阅读有关会话状态模式的更多信息。

如果确定要自定义序列化,则使用二进制序列化而不是JSON是有意义的。 它将需要较少的内存来存储,并且需要较少的资源来进行序列化/反序列化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM