对象序列化(二进制序列化)

对象序列化(二进制序列化)

对象序列化是将对象(比如类对象)转换为二进制数据(字节流).
反序列化是将二进制数据还原为对象,和序列化没有关系.
关键字:BinaryFormatter

作用

序列化/反序列化是为了保持对象的持久性.方便我们的存储和信息的交换.

注意的事项

1.要序列化的对象必须比较为[Serializable].
2.如果有父类,该类型的父类也必须标记为[Serializable].
3.该类型的所有成员也必须标记为[Serializable],默认int,string,等基本类型是可以序列化.
4.序列化只会对类中的字段进行序列化.
5.不建议使用自动属性(每次生成的字段都可能不一样,影响反序列化).
6.不是所有的对象都可以序列化

序列化详

Person p=new Person();
p.Age=90;
p.Name="唐曾";
using(FileStream fs=new FileStream("1.txt",FileMode.Open,FileAccess.Write))
{
  //创建一个序列化对象
  BinaryFormatter bf=new BinaryFormatter();
  //进行序列化
  bf.Serialize(fs,p);
}

步骤:
1.将需要序列化的类标记为可序列化.
2.创建一个流(Using).
3.创建一个序列化对象
4.调用序列化方法进行序列化

反序列化详

Using(FileStream fs=new FileStream(string path,FileMode.Open,FileAccess.Read))
{
BinaryFormater bf=new BinaryFormater();
Person p= bf.Deserialize(fs) as Person;
}

步骤
1:创建一个流读取文件
2.创建一个序列化对象
3.调用反序列化方法.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值