c# - ASP.NET - 在 session 变量中存储类 - 它是如何工作的(内存)?

标签 c# .net asp.net session

我读到过您可以将类直接存储到 session 变量中,即

Session["var"] = myclass;

我的问题是内存管理是如何工作的。它会自动将其序列化到客户端的 session 中吗?

或者它是否在服务器内存中保存类实例的数据,而只是在 session 对象中保存一个引用?

最佳答案

ASP.Net 会将您的对象存储在服务器内存中的static 嵌套字典中。
然后,它将带有 session ID 的 cookie 发送到客户端。

下次客户端发送请求时,ASP.Net 将从外部字典中检索与该 ID 关联的 session ,然后为您提供包含该 session 中对象的内部字典。

(这是默认 session 提供程序的工作方式;其他提供程序可以将对象序列化到 SQL Server,或者完全做其他事情)

关于c# - ASP.NET - 在 session 变量中存储类 - 它是如何工作的(内存)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5505181/

相关文章:

c# - 使用 SQL_VARIANT 的 Entity Framework

c# - 如何在代码外部定义 AutoMapper 映射,即在 XML 文件中或使用不同的方法进行完全可配置的对象映射?

c# - 我在 C# 中的程序的注销部分出错,我能得到一些帮助吗?

javascript - 如何将此字符串数组转换为数组对象

c# - 从方法内添加到列表

c# - Gridview 数据源中的行数

c# - MVVM 和依赖注入(inject)

c# - 当我的计时器滴答作响时.......NET 内存泄漏

c# - 如何以编程方式安全关闭 Google Chrome

c# - IE 中的 .NET ActiveX 组件 - 如何获取浏览器引用