.net学习笔记--序列化与反序列化
2018-06-17 20:24:23来源:未知 阅读 ()
序列化其实就是将一个对象的所有相关的数据保存为一个二进制文件(注意:是一个对象)
而且与这个对象相关的所有类型都必须是可序列化的所以要在相关类中加上 [Serializable]特性
对象类型包括:对象本身包含的类型,父类
拥有需要的对象之后:1.将对象转换为二进制数据 使用专门的对像进行转换 BinaryFormatter
2.将二进制数据写入到文件 FileSteam
反序列化则是把二进制文件转换为一个对象
例子代码如下:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.IO; 7 using System.Runtime.Serialization.Formatters.Binary; 8 namespace ConsoleApplication1 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 Person per;//将要被序列化的对象 15 Console.WriteLine("------序列化与反序列化------"); 16 Console.WriteLine("是否读取已经序列化的对象per"); 17 string str = Console.ReadLine(); 18 if (str == "yes") 19 { 20 if (!File.Exists("save.bin")) 21 { 22 Console.WriteLine("你还没有将per序列化"); 23 return; 24 } 25 using (FileStream fs = new FileStream("save.bin", FileMode.Open)) 26 { 27 BinaryFormatter bf = new BinaryFormatter(); 28 per = bf.Deserialize(fs) as Person;//将二进制数据转换为per对象 29 per.SayHi(); 30 Console.ReadLine(); 31 } 32 } 33 else 34 { 35 per = new Person(); 36 per.Name = "小李"; 37 using(FileStream fs=new FileStream("save.bin",FileMode.Create)) 38 { 39 BinaryFormatter bf = new BinaryFormatter(); 40 bf.Serialize(fs,per);//将per对象转换成二进制数据,并保存。 41 Console.WriteLine("序列化成功"); 42 Console.ReadLine(); 43 } 44 } 45 49 } 50 } 51 [Serializable] 52 class Person 53 { 54 public string Name; 55 public void SayHi() 56 { 57 Console.WriteLine("hello {0}",Name); 58 } 59 } 60 }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi10.3的ListView学习(大图标) 2020-06-05
- Delphi10.3的SpeedButton/BitBtn学习 2020-06-05
- uniGUI学习之UniStringGrid(35) 2020-04-15
- uniGUI学习之uniButton图标(34) 2020-04-09
- UniGUI学习之hbox布局(33) 2020-04-08
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash