.net实现序列化与反序列化实例解析
序列化与反序列化是.net程序设计中常见的应用,本文即以实例展示了.net实现序列化与反序列化的方法。具体如下:
一般来说,.net中的序列化其实就是将一个对象的所有相关的数据保存为一个二进制文件(注意:是一个对象)
而且与这个对象相关的所有类型都必须是可序列化的所以要在相关类中加上 [Serializable]特性
对象类型包括:对象本身包含的类型,父类
拥有需要的对象之后:
1.将对象转换为二进制数据 使用专门的对像进行转换 BinaryFormatter
2.将二进制数据写入到文件 FileSteam
反序列化则是把二进制文件转换为一个对象
示例代码如下所示:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.IO; using System.Runtime.Serialization.Formatters.Binary; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Person per;//将要被序列化的对象 Console.WriteLine("------序列化与反序列化------"); Console.WriteLine("是否读取已经序列化的对象per"); string str = Console.ReadLine(); if (str == "yes") { if (!File.Exists("save.bin")) { Console.WriteLine("你还没有将per序列化"); return; } using (FileStream fs = new FileStream("save.bin", FileMode.Open)) { BinaryFormatter bf = new BinaryFormatter(); per = bf.Deserialize(fs) as Person;//将二进制数据转换为per对象 per.SayHi(); Console.ReadLine(); } } else { per = new Person(); per.Name = "小李"; using(FileStream fs=new FileStream("save.bin",FileMode.Create)) { BinaryFormatter bf = new BinaryFormatter(); bf.Serialize(fs,per);//将per对象转换成二进制数据,并保存。 Console.WriteLine("序列化成功"); Console.ReadLine(); } } } } [Serializable] class Person { public string Name; public void SayHi() { Console.WriteLine("hello {0}",Name); } } }
相信本文实例对于大家进一步理解.net的序列化与反序列化有一定的借鉴帮助作用。
相关文章
C#将PDF转为多种图像文件格式的方法(Png/Bmp/Emf/Tiff)
这里介绍将PDF转换多种不同格式的图像文件格式,如PNG,BMP,EMF,TIFF等,同时,转换文档也分为转换全部文档和转换部分文档为图片两种情况,本文也将作进一步介绍2018-02-02.NET中保证线程安全的高级方法Interlocked类使用介绍
这篇文章主要介绍了.NET中保证线程安全的高级方法Interlocked类使用介绍,Interlocked类可以为为多个线程共享的变量提供原子操作,需要的朋友可以参考下2014-07-07C# Dynamic关键字之:解析dynamic就是Object
本篇文章是对C#中dynamic关键字就是Object进行了详细的分析介绍,需要的朋友参考下2013-05-05DataGridView冻结列或行、列顺序调整、操作行头列头标题的方法
这篇文章介绍了DataGridView冻结列或行、列顺序调整、操作行头列头标题的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2022-02-02C# 使用动态库DllImport("kernel32")读写ini文件的步骤
kernel32.dll是Windows中非常重要的32位动态链接库文件,属于内核级文件,这篇文章主要介绍了C# 利用动态库DllImport("kernel32")读写ini文件,需要的朋友可以参考下2023-05-05
最新评论