如何在会话中创建对象字典?更具体地说,我有一个对象列表: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