具有延迟初始化的对象 - 添加到Session或Viewstate

时间:2010-10-29 20:14:29

标签: asp.net lazy-loading session-variables

我有一个基于双层架构的网站 - 数据层和UI层。我有一个网页,我从查询字符串中获取客户的ID,并从该ID构建客户对象。我的网页上有几个标签,因此,除非我需要数据,否则我不必为未单击的标签中的网格加载数据。这就是为什么我对客户的属性使用Lazy初始化,这是页面加载时不需要的。

我的问题是,在我创建客户对象的页面加载中,如果我将客户对象添加到会话中作为Session [id] = customerObj,我理解customerObj被序列化,但它是否意味着所有属性都是懒惰初始化得到加载?如果是这样,那将无法使用延迟初始化。

我试着查看MSDN,但找不到这个东西应该如何工作的好解释。任何输入都非常感谢。 谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式在te会话中存储对象:

http://msdn.microsoft.com/en-us/library/h6bb9cz9%28VS.71%29.aspx

如果存储对象 InProc ,它将保留在Web服务器的RAM中,并且不会被序列化和反序列化,因此不会触及属性。

这样就没有触发延迟加载。当你把它拿回到下一个回发时,你的物体将保持不变。