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

来源:互联网 发布:天刀捏脸数据存多个 编辑:程序博客网 时间:2024/06/05 21:51

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

对象序列化是将对象(比如类对象)转换为二进制数据(字节流).
反序列化是将二进制数据还原为对象,和序列化没有关系.
关键字: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 0