数组会话对象

时间:2010-12-27 21:30:01

标签: c# asp.net

我在C#ASP.net中使用会话对象。

我想知道我是否可以声明并使用这些对象的数组。

例如,假设有一个会话对象“User”,那么我说:

User[,] u_sers_ = User[3,4].GetCurrentUser;

我要做的是声明一个会话对象数组,这可能吗?

如果不可能,我如何声明一个对象“成员”数组?

由于

1 个答案:

答案 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...