我在C#ASP.net中使用会话对象。
我想知道我是否可以声明并使用这些对象的数组。
例如,假设有一个会话对象“User”,那么我说:
User[,] u_sers_ = User[3,4].GetCurrentUser;
我要做的是声明一个会话对象数组,这可能吗?
如果不可能,我如何声明一个对象“成员”数组?
由于
答案 0 :(得分:6)
上面代码中没有任何内容涉及任何Session
对象。您可能会遇到一些术语混淆:
名为Session
的对象是Page
实例对象的成员变量,等等。为方便当前用户会话引用 会话对象。您没有做任何事情来创建这些对象的“数组” - 每个用户会话当前只有一个活动,每个Page
和其他类似对象只能处理当前对象。
您将对象放在会话字典中以使用它们。再次;这是一个单独的对象,为您自动创建每个会话并确定范围。你不创建它。但是您确实创建了单个对象以插入Session
对象,并为您存储它们,跟踪哪个Session
集合附加到哪个会话。
你当然可以在Session
词典中添加一些内容,但我不认为这就是你在这里寻找的内容。
修改会话使用情况:
在一个页面中,您可以向Session
对象添加内容:
UserObject user = new UserObject(Request);
Session["user"] = user;
int[] integerValues = {1, 4, 6, 7, 44, 334, 3984};
Session["integers"] = integerValues;
object otherStuff = new object();
Session["other"] = otherStuff;
然后你可以通过他们的名字来引用那些对象,经过测试以确保它们确实存在并正确地投射它们。您始终必须测试该对象是否存在,因为Session可能随时过期。
UserObject user = Session["user"] as UserObject;
if(user!=null)
...do stuff here...
int[] integerValues = Session["integers"] as int[];
if(integerValues!=null)
...do stuff here...
etc...