29、数据持久化与.NET泛型知识详解

数据持久化与.NET泛型知识详解

1. 数据序列化

数据序列化是将对象转换为可传输或存储的格式,反序列化则是将其还原为对象。在实现 System.Runtime.Serialization.ISerializable 接口时, BinaryFormatter 在序列化或反序列化 MyObject 时,会将二进制流的操作委托给 MyObject

序列化有写入和读取两个方向,开发者需以相同方式实现。例如,使用 AddValue() 方法将数据成员作为字符串写入,读取时也需按字符串读取。

不过,不同的序列化平台有各自的实现方式,通用的序列化方法往往行不通。因此,应尽量避免自定义序列化,让平台自行处理数据成员。

1.1 声明非序列化数据成员

有时,某些数据成员不适合序列化,如网络连接。因为网络连接是临时的,序列化后再反序列化可能无意义。可使用属性标记数据成员为非序列化,示例代码如下:

<Serializable()>
Class MyObject2
    <NonSerialized()>
    Private _networkIdentifier As Integer
End Class

在上述代码中, _networkIdentifier 不会从数据流中读写。

1.2 分离数据对象和操作对象

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值