数据持久化与.NET泛型编程
1. 数据序列化相关知识
数据序列化是将对象转换为可传输或存储的格式的过程,在这个过程中有许多要点需要掌握。
1.1 序列化接口的实现
当实现 System.Runtime.Serialization.ISerializable 接口时, BinaryFormatter 在序列化或反序列化对象时,会将二进制流的操作委托给对象本身。在二进制序列化中,写入对象到流时会调用 GetObjectData() 方法,从流中读取对象时会调用构造函数。
序列化包含写入和读取两个方向,开发者需要以相同的方式实现这两个方向的操作。例如,在写入时使用 AddValue() 方法将数据成员作为字符串写入,读取时也必须将值数据成员作为字符串读取。
需要注意的是,不同的序列化平台有各自的实现方式,很难有通用的序列化方法。因此,应尽量避免自定义序列化,让平台自行处理数据成员,这样能减少程序的复杂性和潜在错误。
1.2 声明非序列化的数据成员
在某些情况下,对象中的某些数据成员不适合被序列化。例如,对象包含网络连接,序列化后再反序列化,该网络连接可能就失去了意义,因为它是临时的,只适用于对象实例的上下文。
可以使用属性来标记数据成员为非序列化,示例代码如下:
<Serializable()>
Class MyObject2
<NonSerialized()&
超级会员免费看
订阅专栏 解锁全文
16

被折叠的 条评论
为什么被折叠?



