[英]session architecture in asp.net
我有一个看起来像这样的 object:
public class MySession{
string UserID {get;set;}
List<Object1> ListOfObject1 {get;set;}
List<Object2> ListOfObject2 {get;set;}
....
several other lists....
}
这样做的好处是我可以写类似“页面加载” MySession TheSession = Session["TheSession"] as MySession;
然后在代码中更轻松地访问会话的属性。
目前,这适用于 InProc session,但我希望转移到 SQL 服务器 session。
进行此更改的最佳方法是什么? I'm thinking of serializing the MySession object into a json string and then letting SQL Server session save the session as a string. 然后,当我重新加载 session 时,只需加载 json 字符串并反序列化它。
我不知道这是否是最有效的方法。 感谢您的建议。
您需要做的就是制作MySession
和所有相关的类[Serializable]
(二进制序列化)。
ASP.Net 会自动为您序列化它。
如果效率是唯一的问题,我不确定你会获得多少,除非 object 图对某些用户来说相当大。 使用 session 默认值,它是二进制序列化的,这将比您的 JSON 打包更多。
如果您需要 session 位的可读性(调试?),那么您可以 go 您的路线。
只要你用[Serializable] 属性标记你的 class 并且它实际上是可序列化的,你不必自己手动序列化。 So long as your web application is configured properly for out-of-process session state management and everything you stick into Session is serializable, everything should work.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.