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

开发 后端
本文介绍C#序列化和反序列化,其实通俗一点的解释,序列化就是把一个对象保存到一个文件或数据库字段中去,反序列化就是在适当的时候把这个文件再转化成原来的对象使用。

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

这个例子就是使用三种不同的方式把一个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); 

【编辑推荐】

  1. 分析C#不安全代码
  2. 浅析C#调用ImageAnimator
  3. C#连接Access、SQL Server数据库
  4. 浅谈C#固定的和活动的变量
  5. 介绍C#中的值类型
责任编辑:佚名 来源: 博客园
相关推荐

2009-08-24 17:14:08

C#序列化

2009-08-25 14:24:36

C#序列化和反序列化

2009-08-25 14:43:26

C#序列化和反序列化

2011-06-01 14:50:48

2022-08-06 08:41:18

序列化反序列化Hessian

2011-06-01 15:05:02

序列化反序列化

2011-05-18 15:20:13

XML

2009-09-09 15:47:27

XML序列化和反序列化

2024-05-06 00:00:00

C#序列化技术

2024-01-30 13:32:51

JSON反序列化序列化

2019-11-20 10:07:23

web安全PHP序列化反序列化

2009-06-14 22:01:27

Java对象序列化反序列化

2024-03-05 12:49:30

序列化反序列化C#

2016-09-21 00:15:27

2023-12-13 13:49:52

Python序列化模块

2018-03-19 10:20:23

Java序列化反序列化

2009-09-09 16:10:11

.NET序列化和反序列

2021-11-18 07:39:41

Json 序列化Vue

2009-07-29 13:39:02

JSON序列化和反序列ASP.NET AJA

2010-03-19 15:54:21

Java Socket
点赞
收藏

51CTO技术栈公众号