You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET中存储List数据至Session的最优方式探讨

哪种方式是存储列表到Session的最佳实践?

先看基础代码:

List<MyClass> myList = new List<MyClass>();

下面两种存储到Session的方式,哪种更优?

方式1

Session["SerializedList"] = myList;

方式2

string serializedList = new JavaScriptSerializer().Serialize(myList);
Session["SerializedList"] = serializedList;

Session["SerializedList"] = myList;

结论:选方式1

原因如下:

  • 方式2完全是冗余操作——先把列表序列化为JSON字符串存入Session,紧接着又用原myList对象覆盖同一个Session键,前面的序列化步骤纯属鸡肋,白白消耗性能。
  • 从Session存储的逻辑来看:
    • 如果用进程内Session(InProc):直接存储对象实例是最高效的,对象直接保存在服务器内存中,无需额外转换,存取速度最快。
    • 如果用StateServer或SQL Server模式的分布式Session:只需给MyClass标记[Serializable]特性,.NET会自动完成二进制序列化处理,比手动JSON序列化更可靠——JSON可能丢失.NET特有的类型信息,额外的序列化/反序列化步骤还会降低性能。

所以无论哪种场景,方式1都是更合理的选择。

内容的提问来源于stack exchange,提问作者refael myshiakov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 09:50:57