详解C#序列化和反序列化

C#序列化和反序列化我们可能经常会听到,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。
我想最主要的作用有:
1、在进程下次启动时读取上次保存的对象的信息
2、在不同的AppDomain或进程之间传递数据
3、在分布式应用系统中传递数据
......
在C#中常见的序列化的方法主要也有三个:BinaryFormatter、SoapFormatter、XML序列化
本文就通过一个小例子主要说说这三种方法的具体使用和异同点

成都创新互联公司技术团队十载来致力于为客户提供网站制作、成都网站建设成都品牌网站建设营销型网站建设、搜索引擎SEO优化等服务。经过多年发展,公司拥有经验丰富的技术团队,先后服务、推广了上1000家网站,包括各类中小企业、企事单位、高校等机构单位。

这个例子就是使用三种不同的方式把一个Book对象进行C#序列化和反序列化,当然这个Book类首先是可以被序列化的。

一、BinaryFormatter序列化方式
1、序列化,就是给Book类赋值,然后进行序列化到一个文件中
2、反序列化
3、测试用的

二、SoapFormatter序列化方式
调用序列化和反序列化的方法和上面比较类似,我就不列出来了,主要就看看SoapSerialize类

主要就是调用System.Runtime.Serialization.Formatters.Soap空间下的SoapFormatter类进行C#序列化和反序列化,使用之前需要应用System.Runtime.Serialization.Formatters.Soap.dll(.net自带的)序列化之后的文件是Soap格式的文件(简单对象访问协议(Simple Object Access Protocol,SOAP),是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息。 SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。SOAP使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用Internet上各种不同操作环境中的分布式对象。)
调用反序列化之后的结果和方法一相同

三、XML序列化方式
调用序列化和反序列化的方法和上面比较类似,我就不列出来了,主要就看看XmlSerialize类

在调用序列化时使用如下方法:

 
 
 
  1. Book book = new Book();  
  2. book.BookID = "1";  
  3. book.alBookReader.Add("gspring");  
  4. book.alBookReader.Add("永春");  
  5. book.strBookName = "C#强化";  
  6. book.strBookPwd = "*****";  
  7. book.SetBookPrice("50.00");  
  8.  
  9. Book book2 = new Book();  
  10. book2.BookID = "2";  
  11. book2.alBookReader.Add("gspring");  
  12. book2.alBookReader.Add("永春");  
  13. book2.strBookName = ".NET强化";  
  14. book2.strBookPwd = "*****";  
  15. book2.SetBookPrice("40.00");  
  16.  
  17. book.relationBook = book2;  
  18. bookbook2.relationBook = book;  
  19. BinarySerialize serialize = new BinarySerialize();  
  20. serialize.Serialize(book); 

当前文章:详解C#序列化和反序列化
文章来源:http://www.shufengxianlan.com/qtweb/news14/498414.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联