我正在从InProc会话切换到SQL server会话。目前,我的会话对象如下所示:
public class UserSession{
public string TheStrings {get;set;}
public int TheInts {get;set;}
public List<MyObjectModel> ListOfObjects {get;set;}
}它基本上包含字符串、int和几个对象列表。我所做的是将这个对象存储在会话中,然后当我需要访问会话时,我可以编写UserSession.TheStrings。
现在我将其转换为SQL会话,序列化就开始发挥作用了。我是只需要将可序列化属性添加到整个类中,还是还需要将其添加到所有MyObjectModels的类定义中?
谢谢。
发布于 2011-08-30 05:39:32
我非常确定,只要对象中的所有内容都是简单类型,它就会在默认情况下序列化。
SerializableAttribute Class
将SerializableAttribute属性应用于类型,以指示此类型的实例可以序列化。如果要序列化的对象图中的任何类型未应用SerializableAttribute属性,则公共语言运行库将引发SerializationException。
即使该类还实现了ISerializable接口来控制序列化过程,也要应用SerializableAttribute属性。
默认情况下,除非类型实现ISerializable接口以重写序列化过程,否则将序列化由SerializableAttribute标记的类型中的所有公共字段和私有字段。默认序列化过程排除用NonSerializedAttribute属性标记的字段。如果可序列化类型的字段包含特定于特定环境的指针、句柄或其他数据结构,并且不能在不同的环境中有意义地重构,则可能需要将NonSerializedAttribute属性应用于该字段。
https://stackoverflow.com/questions/7236223
复制相似问题