none
Session存储的对象,怎么访问? RRS feed

  • 问题

  • 我把用户信息封装成对象,然后把对象给了Session,比如Session["user"] = modelUser;
    那么对象里面的用户信息(u_id,u_name,u+type等)怎么通过Session来访问?这些信息在Session里面是不是以数组存储的?
    2009年12月7日 2:54

答案

  • Session 存的是 object 对象,你将这个值转换一下就可以了。如:

    ModelUser modelUser = (ModelUser) Session["user"]; 

    modelUser. u_id = ...
    modelUser. u_name = ...

    黑色部分是你存入的对象的类型。

    知识改变命运,奋斗成就人生!
    2009年12月7日 3:01
    版主
  • 其实每个Session的子项都是一个object类型,Session就相当一个集合,这个集后比一般集合要奇怪(因为他有一个SessionID ,来与客户端来维护状态,当然还其他一些为维护状态而创建的成员)。这里把对象放到Session["user"]中,取的时候就用(类名)Session["user"],这里不是装箱与拆箱,因为装拆箱是在值类型与引用类型间的,这里是个类型转换。



    山西.net俱乐部
    2009年12月7日 14:05
    版主

全部回复

  • Session 存的是 object 对象,你将这个值转换一下就可以了。如:

    ModelUser modelUser = (ModelUser) Session["user"]; 

    modelUser. u_id = ...
    modelUser. u_name = ...

    黑色部分是你存入的对象的类型。

    知识改变命运,奋斗成就人生!
    2009年12月7日 3:01
    版主
  • 谢谢了。
    Session存储这种信息,是怎么存储的?
    只能通过这种方式吗?

    2009年12月7日 3:18
  • 其实就是一个装箱与拆箱。这里最好用一个属性来返回,避免在每次使用的时候进行转换。

    public ModelUser modelUser
    {
    get{ return (ModelUser) Session["user"];}
    set { (ModelUser) Session["user"] = value;}
    }

    知识改变命运,奋斗成就人生!
    2009年12月7日 3:21
    版主
  • 其实每个Session的子项都是一个object类型,Session就相当一个集合,这个集后比一般集合要奇怪(因为他有一个SessionID ,来与客户端来维护状态,当然还其他一些为维护状态而创建的成员)。这里把对象放到Session["user"]中,取的时候就用(类名)Session["user"],这里不是装箱与拆箱,因为装拆箱是在值类型与引用类型间的,这里是个类型转换。



    山西.net俱乐部
    2009年12月7日 14:05
    版主