如何在會話中創建對象字典?更具體地說,我有一個對象列表:MyList存儲MyObject作爲linq查詢的結果,並將日期作爲參數。在會話中存儲字典
List<MyObject> Mylist;
MyList = GetObjects(TheDate);
現在我想將MyList存儲在日期爲鍵的字典中的會話對象中。當頁面需要特定日期的MyList時,首先搜索字典,如果該日期爲空,則從GetObjects查詢中獲取數據並將結果存儲在會話的字典中。
這樣做的最好方法是什麼?
謝謝。
如何在會話中創建對象字典?更具體地說,我有一個對象列表:MyList存儲MyObject作爲linq查詢的結果,並將日期作爲參數。在會話中存儲字典
List<MyObject> Mylist;
MyList = GetObjects(TheDate);
現在我想將MyList存儲在日期爲鍵的字典中的會話對象中。當頁面需要特定日期的MyList時,首先搜索字典,如果該日期爲空,則從GetObjects查詢中獲取數據並將結果存儲在會話的字典中。
這樣做的最好方法是什麼?
謝謝。
樣品用於存儲會話詞典:
List<MyObject> Mylist;
MyList = GetObjects(TheDate);
Dictionary<DateTime> myDictionary = new Dictionary<DateTime>();
myDictionary[TheDate] = MyList;
Session["DateCollections"] = myDictionary;
樣品從會話檢索(應該有null
檢查,以確保它的存在):
Dictionary<DateTime> myDictionary = (Dictionary<DateTime>) Session["DateCollections"];
我會建立某種形式的門面圍繞訪問會話變量,這使得檢索和設置值非常容易。另外,您不必擔心會話var名稱是否正確,因爲它們都存儲在同一個地方。例如:
public static class SessionVars
{
public static Dictionary<DateTime> DateCollections
{
get { return (Dictionary<DateTime>)HttpContext.Current.Session["DateCollections"]; }
set { HttpContext.Current.Session["DateCollections"] = value; }
}
}
然後訪問它的任何地方在你的代碼應該是這樣的:
var List<MyObject> mylist = SessionVars.DateCollections[TheDate];
我試圖創建一個命名空間稱爲ObjectsSessions內不同的文件名爲MyDictio的對象。當我嘗試「public class Dictionary ...」時,我沒有在Dictionary關鍵字上獲得智能感知。我在哪裏申報這本詞典,以便它在每個頁面中都可用? – frenchie 2011-01-29 17:09:03
嘗試`使用System.Collections.Generic;` – BrokenGlass 2011-01-29 17:10:21