.net学习笔记--序列化与反序列化

王朝学院·作者佚名  2016-08-27
窄屏简体版  字體: 小  |  中  |  大  |  超大  

序列化其实就是将一个对象的所有相关的数据保存为一个二进制文件(注意:是一个对象)

而且与这个对象相关的所有类型都必须是可序列化的所以要在相关类中加上[Serializable]特性

对象类型包括:对象本身包含的类型,父类

拥有需要的对象之后:1.将对象转换为二进制数据 使用专门的对像进行转换 BinaryFormatter

2.将二进制数据写入到文件 FileSteam

反序列化则是把二进制文件转换为一个对象

例子代码如下:

1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Linq;4usingSystem.Text;5usingSystem.Threading.Tasks;6usingSystem.IO;7usingSystem.Runtime.Serialization.Formatters.Binary;8namespaceConsoleapplication19{10classPRogram11{12staticvoidMain(string[] args)13{14Person per;//将要被序列化的对象15Console.WriteLine("------序列化与反序列化------");16Console.WriteLine("是否读取已经序列化的对象per");17stringstr =Console.ReadLine();18if(str =="yes")19{20if(!File.Exists("save.bin"))21{22Console.WriteLine("你还没有将per序列化");23return;24}25using(FileStream fs =newFileStream("save.bin", FileMode.Open))26{27BinaryFormatter bf =newBinaryFormatter();28per = bf.Deserialize(fs)asPerson;//将二进制数据转换为per对象29per.SayHi();30Console.ReadLine();31}32}33else34{35per =newPerson();36per.Name ="小李";37using(FileStream fs=newFileStream("save.bin",FileMode.Create))38{39BinaryFormatter bf =newBinaryFormatter();40bf.Serialize(fs,per);//将per对象转换成二进制数据,并保存。41Console.WriteLine("序列化成功");42Console.ReadLine();43}44}4549}50}51[Serializable]52classPerson53{54publicstringName;55publicvoidSayHi()56{57Console.WriteLine("hello {0}",Name);58}59}60}

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航