session:从InProc转到SQL会话

时间:2011-08-29 21:30:25

标签: asp.net session

我正在从InProc会话切换到SQL服务器会话。目前,我的会话对象如下所示:

public class UserSession{

  public string TheStrings {get;set;}
  public int TheInts {get;set;}

  public List<MyObjectModel> ListOfObjects {get;set;}

}

它基本上包含字符串,整数和几个对象列表。我所做的是将此对象存储在会话中,然后当我需要访问会话时,我可以编写UserSession.Strings。

现在,我正在将此转换为SQL会话,序列化正在发挥作用。我是否只需要将[serializable]属性添加到整个类中,或者我是否还需要将它添加到所有MyObjectModel的类定义中?

感谢。

1 个答案:

答案 0 :(得分:1)

我很确定只要对象中的所有内容都是简单类型,它就会默认序列化。

SerializableAttribute Class

  

将SerializableAttribute属性应用于类型以指示该属性   此类型的实例可以序列化。公共语言运行库   如果对象图中有任何类型,则抛出SerializationException   被序列化没有Seri​​alizableAttribute属性   应用

     

即使该类也应用SerializableAttribute属性   实现ISerializable接口来控制序列化   过程

     

标记为的类型中的所有公共和私有字段   除非类型,否则SerializableAttribute默认是序列化的   实现ISerializable接口以覆盖序列化   处理。默认序列化过程会排除字段   用NonSerializedAttribute属性标记。如果是一个领域   serializable类型包含指针,句柄或一些其他数据   特定于特定环境的结构,不可能   有意义地在不同的环境中重建,那么你可能会   想要将NonSerializedAttribute属性应用于该字段。