网站大量收购独家精品文档,联系QQ:2885784924

1C#对象序列化详解带实例.pdf

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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

文档评论(0)

cjp823 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:7060131150000004

1亿VIP精品文档

相关文档