我有一个看起来像这样的对象:

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会话一起使用,但是我希望转向SQL Server会话。

进行此更改的最佳方法是什么?我正在考虑将MySession对象序列化为json字符串,然后让SQL Server会话将会话另存为字符串。然后,当我重新加载会话时,只需加载json字符串并反序列化即可。

我不知道这是否是最有效的方法。
感谢您的建议。

最佳答案

您所需要做的就是制作MySession和所有相关类[Serializable](二进制序列化)。

ASP.Net将自动为您序列化它。

08-08 09:29