你目前正处于脱机状态,正在等待 Internet 重新连接

你的浏览器不受支持

你需要更新你的浏览器才能使用该网站。

更新到 Internet Explorer 的最新版本

如何通过使用 Visual C# 中序列化到 XML 对象

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。

点击这里察看该文章的英文版: 815813
为这篇文章的一个 Microsoft Visual Basic.net 版本,请参阅 315703
下面的 Microsoft.net 框架类库命名空间引用这篇文章:
  • System.Xml
  • System.Xml.Serialization

本任务中

概要
本分步指南介绍了如何通过使用 Visual C# 中序列化到 XML 对象。此方法可用于保持对象的状态。此方法还可用于通过 de-serializing XML 返回到一个新的对象克隆的对象。

back to the top

要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和所需的服务包:
  • Microsoft Visual Studio
本文假定您熟悉下列主题:
  • 常规熟悉 XML
  • 常规熟悉 Visual C#
back to the top

XML 序列化

序列化是获取对象的状态并保持它以某种方式的过程。Microsoft.net 框架包括功能强大的对象的可序列化到 XML 的任何对象。System.Xml.Serialization 命名空间提供了此功能。

请按照下列步骤创建一个控制台应用程序,它创建一个的对象,然后将其状态为 XML 序列化操作:
  1. 在 Visual C#,创建新的控制台应用程序项目。
  2. 项目 菜单上单击 添加类 向项目添加一个新的类。
  3. 添加新项 对话框中更改 clsPerson 类的名称。
  4. 单击 添加。创建一个新的类。

    注意在 Visual Studio.net 2003 年单击 打开
  5. 下面的代码添加后,公共类 clsPerson 语句
     public   string FirstName; public   string MI; public   string LastName;
  6. 为 Program.cs Visual Studio 中或在 Visual Studio.net 2003 Class1.cs,请切换到代码窗口。
  7. 将 void 的 Main 方法中声明并创建 clsPerson 类的实例:
    clsPerson p = new clsPerson();
  8. 设置 clsPerson 对象的属性,请执行下列操作:
    p.FirstName = "Jeff";p.MI = "A";p.LastName = "Price";
  9. Xml.Serialization 命名空间包含一个 XmlSerializer 类,将以 XML 对象序列化的。您在创建 XmlSerializer 的实例时传递要序列化到它的构造函数的类的类型:
    System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
  10. 序列化到 XML 对象使用 Serialize 方法。序列化重载,可以将输出发送到 TextWriter,或 XMLWriter 对象。在此的示例中您将输出发送到控制台:
    x.Serialize(Console.Out,p);Console.WriteLine();Console.ReadLine();
back to the top

完成代码列表

using System;public class clsPerson{  public  string FirstName;  public  string MI;  public  string LastName;}class class1{    static void Main(string[] args)   {      clsPerson p=new clsPerson();      p.FirstName = "Jeff";      p.MI = "A";      p.LastName = "Price";      System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());      x.Serialize(Console.Out, p);      Console.WriteLine();      Console.ReadLine();   }}    
back to the top

验证

若要验证您的项目的工作,请按 CTRL + F5 运行项目。创建并使用您输入的值填充 clsPerson 对象。 此状态的序列化到 XML。在控制台窗口显示以下:
<?xml version="1.0" encoding="IBM437"?> <clsPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3 .org/2001/XMLSchema"><FirstName>Jeff</FirstName> <MI>A</MI><LastName>Price</LastName></clsPerson>		
back to the top

疑难解答

Xml.Serialization.XmlSerializer 对象执行只浅序列化。如果您还需要序列化一个对象或子对象的私有变量,则必须使用深的序列化。

back to the top
参考
有关详细的信息,请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:back to the top

警告:本文已自动翻译

属性

文章 ID:815813 - 上次审阅时间:07/21/2008 19:01:40 - 修订版本: 4.1

  • Microsoft Visual C# 2008 Express Edition
  • Microsoft Visual C# .NET 2003 标准版
  • Microsoft Visual C# .NET 2002 标准版
  • Microsoft Visual C# 2005 Express Edition
  • kbmt kbsweptvs2008 kbnamespace kbxml kbhowtomaster KB815813 KbMtzh
反馈