在json字符串中序列化会话对象
本文关键字:会话 对象 序列化 json 字符串 | 更新日期: 2023-09-27 18:00:02
我构建了一个强类型会话对象,如下所示:
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;
然后在稍后的代码中,我可以使用CCD_ 1语法访问每个属性。
这确实很酷,但我认为将会话存储在DB中可能会更好。
我正在考虑将MySession对象序列化为json字符串,并将该字符串存储在DB中,以便在加载页面时检索和反序列化。
这是个好方法吗?
谢谢你的建议。
首先确保您需要Session中的所有数据。我感觉您需要创建数据库表并将数据存储在表中。
如果您确定需要Session,那么使用标准<sessionState mode="SQLServer">
是有意义的。您可以在此处阅读有关会话状态模式的更多信息。
如果您确定要自定义序列化,那么使用二进制序列化而不是JSON是有意义的。它将需要更少的内存来存储,并且需要更少的资源来序列化/反序列化。
ASP。NET会话状态服务器与InProc会话介绍了使用状态服务器或进程内会话存储的优缺点。
至于使用JSON,它肯定比XML更轻,也同样灵活——至少对于您的目的来说是这样。我认为没有理由不这么做。