繁体   English   中英

asp.net 中的 session 架构

[英]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.

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