- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
程序员在编写应用程序的时候往往要将程序的某些数据存储在内存中,然后
将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯。这个将
程序数据转化成能被存储并传输的格式的过程被称为序列化 (Serialization),
而它的逆过程则可被称为反序列化 (Deserialization)。
.Net 框架对序列化机制具有非常好的支持,它提供了两个名字空间
( namespace ) : System.Runtime.Serialization 和
System.Runtime.Serialization.Formatters 以完成序列化机制的大部分功能。系列化
这项技术可以应用在将程序产生的结果数据存储到文件系统中,但是它更主要的
应用是在于.Net Remoting 和Web 服务的实现上。
序列化机制的实现是依靠格式器 (Formatter)而完成的,它是一个从
System.Runtime.Serialization.IFormatter 继承下来的类的对象。格式器完成了将程
序数据转化到能被存储并传输的格式的工作,同时也完成了将数据转化回来的工
作。.Net 框架为程序员提供了两种类型的格式器,一种通常是应用于桌面类型的
应 用 程 序 的 , 它 一 个 是
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter 类的对象,而另一
种则更主要的应用于.Net Remoting 和 XML Web 服务等领域的,它一个是
System.Runtime.Serialization.Formatters.Soap.SoapFormatter 类的对象。从它们的
名称来看,我们不妨将它们分别称为二进制格式器和XML 格式器。
本文将从这两个格式器入手,先向大家介绍分别用它们如何实现序列化和反
序列化,然后比较两种格式器的不同点。接着我会向大家介绍实现序列化对对象
类型的一些要求,同时还要向大家介绍两种不同的序列化方式:基本序列化(Basic
Serialization)和自定义序列化 (Custom Serialization)。最后,我还会给大家介绍
一个实例程序以加深大家对序列化机制的理解程度。
一.二进制格式器 (Binary Formatter) vs XML 格式器 (XML Formatter):
下面我先向大家介绍两种不同的格式器,分别用它们如何实现序列化机制和
反序列化机制,请看下面的代码:
#region Binary Serializers
public static System.IO.MemoryStream SerializeBinary(object request) {
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter serializer =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
System.IO.MemoryStream memStream = new System.IO.MemoryStream();
serializer.Serialize(memStream, request);
return memStream;
}
public static object DeSerializeBinary(System.IO.MemoryStream memStream) {
memStream.Position=0;
System.Runtime.Serialization.Formatters.Binary.BinaryFormatter deserializer =
new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
object newobj = deserializer.Deserialize(memStream);
memStream.Close();
return newobj;
}
#endregion
#region XML Serializers
publi
您可能关注的文档
最近下载
- 2024年10月 高等教育自学考试 真题 计算机基础与应用技术 13807.pdf VIP
- GB_T 32270-2024 压力管道规范 动力管道.docx
- 制造业精益成本控制培训PPT课件.pptx VIP
- 会计学_零售业成本控制问题及对策分析以良品铺子为例.docx VIP
- 制造业精益成本管理实务.pptx VIP
- 丰田工程标准 TSM 0501G塑料成型材料标准试验方法.doc
- 新能源汽车构造与检修(微课版)课程标准.pdf
- 综合实践活动三年级上册欢欢喜喜过春节《了解春节》《贴春联》《包饺子》教学设计.pdf VIP
- 运动与健康PPT课件(小学生).pptx
- 关于可溶颗粒剂溶化性检查结果判断标准的商榷.pdf VIP
文档评论(0)