2010-10-29 54 views
0

我有一個基於兩層架構的網站數據層和UI層。我有一個網頁,我從查詢字符串中獲得一個客戶的id,然後從該id生成客戶對象。我在我的網頁中有幾個標籤,所以,除非我需要數據,否則我不需要爲沒有點擊的標籤中的網格加載數據。這就是爲什麼我使用Lazy初始化爲客戶的屬性,這是頁面加載不需要。具有延遲初始化的對象 - 添加到Session或Viewstate

我的問題是,在頁面加載時,當我創建客戶對象時,如果我將客戶對象添加到會話中作爲Session [id] = customerObj,我明白customerObj被序列化,但這是否意味着所有屬性是懶惰初始化獲取加載?如果是這樣,那將失去使用延遲初始化的目的。

我試圖在MSDN上看,但找不到這個東西應該如何工作的好解釋。任何輸入是極大的讚賞。 謝謝!

回答

0

可以在TE會話對象存儲在幾個方面:

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

如果存儲對象是InProc,它停留在Web服務器的內存,它不是序列化和反序列化,所以屬性不會被觸及。

這種方式沒有延遲加載觸發。當你回到下一個回傳時,你的對象將保持不變。