指南信息:.net 框架中的 XML 序列化

文章翻译 文章翻译
文章编号: 314150 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文提供了一个路线图,若要了解和主序列化和反序列化的 XML 与.net 框架 (System.Xml 命名空间)。

路线图文章提供了指向包括联机文档、 Microsoft 知识库文章和 Microsoft 白皮书可帮助您了解有关 Microsoft 产品或技术的有用信息的链接。Microsoft 知识库 How To 文章和演练提供了完成特定任务的分步指导。快速入门示例文件是一种现成的程序,阐释一种技术。

概述

序列化是将对象转换为可以很容易地传输的窗体的过程。例如对于您可以将对象序列化并通过使用 HTTP 客户端和服务器之间在 Internet 上传输它。在另一端上反序列化重新构造从流对象。

.NET 框架具有以下两个序列化技术:
  • 二进制序列化 保留这非常有用的保留的应用程序的不同调用之间的一个对象的状态类型保真。例如对于您可以共享由正在其序列化到剪贴板上的不同应用程序之间的对象。例如对于您可以序列化流,磁盘到内存,或通过网络对象。远程处理使用序列化"按值"传递的对象从一个计算机或应用程序域到另一个。
  • XML 序列化 XML 流化为只有公共字段和属性值的对象。XML 序列化不包含类型信息。 例如对于如果 命名空间中存在一个 簿 对象并不保证它将被反序列化到相同类型的对象。
它是必须了解这两种技术之间的时差。XML 序列化不转换方法、 索引器、 私有的字段或只读属性 (除只读收藏集)。要序列化的所有公共和私有字段和对象的属性,使用 BinaryFormatter 而不是 XML 序列化。

下面的链接提供有关 XML 序列化和反序列化 Microsoft Visual Studio.net 中的概述信息:
介绍 XML 序列化
http://msdn2.microsoft.com/en-us/library/182eeyhh(vs.71).aspx

XML 和 SOAP 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconserialization.asp

XML 序列化体系结构

System.Xml.Serialization 命名空间包含用于将对象序列化为 XML 格式的文档或流的类。

中心类命名空间中的是 XmlSerializer 类。若要用于此类用于 XmlSerializer 的构造函数创建类的实例通过使用序列化的对象的 类型。创建一个 XmlSerializer 后,创建要序列化对象的实例。您还必须创建要将文件写入到文档或流,如 TextWriter 或一个 XmlWriter 的对象。然后,您可以调用 Serialize 方法将对象转换为 XML 文档。

反序列化从 XML 文档对象,创建一个合适的对象,以阅读该文档或流 (再次 TextWriter 或一个 XmlWriter)。调用 Deserialize 方法时强制转换为已序列化的原始对象的 类型 生成的对象。

若要控制序列化多个,System.Xml.Serialization 命名空间提供了可应用于类的成员的几个 属性 类。例如对于如果一个类中包含一个将被序列化为 XML 元素的成员可将 XmlElementAttribute 属性应用到成员中。在应用该属性时可以使用 ElementName 属性来指定详细信息,如实际的 XML 元素名称。

下面的链接提供有关 XML 序列化和反序列化的体系结构 (内部) 信息:
XML 序列化类
http://msdn2.microsoft.com/en-us/library/system.xml.serialization.xmlserializer(vs.71).aspx

System.Xml.Serialization 层次结构
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemxmlserializationhierarchy.asp

主要概念和快速入门

下面的链接将您带到文档中有关密钥 XML 序列化和反序列化的概念和快速入门教程。
使用 XML Web 服务的 XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconxmlserializationwithwebservices.asp

如何我读/写对象为 XML?
http://samples.gotdotnet.com/quickstart/aspplus/default.aspx?url=/quickstart/howto/doc/XMLSerialization/RWObjFromXML.aspx

重写 XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconoverridingserializationofclasseswithxmlattributeoverridesclass.asp

.NET 示例中的如何: XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpqstart/html/cpsmpnetsamples-howtoxmlserialization.asp
"示例的序列 XML 化"链接提供了几个代码示例演示了包括下面的 XML 序列化的:
  • 数据集的序列化
  • XmlElement 和 XmlNode 的序列化
  • 包含字段返回一个复杂的对象序列化的类
  • 序列化的对象的一个数组
  • 序列化类的 Implements ICollection 接口
  • 一个购买订单示例
XML 序列化的示例
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconanexampleofxmlserializationwithxmlserializer.asp
"控制 XML 序列化使用属性"链接讨论下面的代码示例的主题:
  • 控制序列化数组
  • 序列化派生的类
  • 序列化作为序列的元素的数组
  • 序列化 ArrayList
  • 控制序列化的类使用 XmlRootAttribute 和 XmlTypeAttribute
  • 防止在 XmlIgnoreAttribute 带序列化
使用属性控制 XML 序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpguide/html/cpconcontrollingserializationbyxmlserializerwithattributes.asp

知识库文章

Microsoft 知识库 How To 文章提供了完成特定任务的分步指导。
315703如何: 使用 Visual Basic.net 将序列化为 xml 对象
316730如何: 序列化和反序列化 XML Visual Basic.net 中
您可以也运行 XSL 转换 (XSLT)、 查询和使用 DOM,修改 XML 数据和序列化或反序列化 XML 数据通过.net 框架中使用 System.Xml 类。有关详细的信息,请参阅以下知识库文章:
313651.NET 框架中的 XML 的指南

演练

演练提供了指导您完成使用 XML 序列化和反序列化的一些典型的应用程序开发方案的小型教程。下面的链接将带您演练的文档。
使用架构和到利用业务逻辑的序列化
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnexxml/html/xml04162001.asp

故障排除

如果遇到问题,并且希望帮助最佳启动位置是在 Microsoft 产品支持服务 (PSS) Web 站点:
http://support.microsoft.com
您有几个选项,以查找问题的答案。您可以搜索 Microsoft 知识库、 发布您的问题或共享您的经验上 Microsoft 新闻组、 获取最新的服务包和有关某一特定产品的新闻或与 Microsoft 产品支持部门联系。

属性

文章编号: 314150 - 最后修改: 2007年5月18日 - 修订: 3.3
这篇文章中的信息适用于:
  • Microsoft .NET Framework Class Libraries 1.0
  • Microsoft .NET Framework Class Libraries 1.1
关键字:?
kbmt kbarttyperoadmap kbinfo KB314150 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 314150
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。
不再更新的 KB 内容免责声明
本文介绍那些 Microsoft 不再提供支持的产品。因此本文按“原样”提供,并且不再更新。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com