使用 Visual C# 将对象序列化为 XML
本文提供了有关如何使用 Visual C# 将对象序列化为可扩展标记语言 (XML) 的方法。
原始产品版本: Visualstudio
原始 KB 编号: 815813
摘要
本文中所述的方法对于保留对象的状态非常有用。 方法还可用于通过将 XML 反序列化回新对象来克隆对象。
本文介绍了以下 Microsoft .NET Framework 类库命名空间:
System.Xml
System.Xml.Serialization
要求
本文假设你熟悉以下主题:
- Visual Studio
- 大致熟悉 XML
- 大致熟悉 Visual C#
XML 序列化
序列化是采用对象状态并以某种方式保留它的过程。 .NET Framework包括可以将任何对象序列化为 XML 的强大对象。 命名空间 System.Xml.Serialization
提供此功能。
按照以下步骤创建一个控制台应用程序,该应用程序创建对象,然后将其状态序列化为 XML:
在 Visual C# 中,创建新的控制台应用程序项目。
在“ 项目 ”菜单上,选择“ 添加类 ”,将新类添加到项目。
在“ 添加新项 ”对话框中,将 类的名称更改为 clsPerson。
选择“添加”。 将创建一个新类。
在公共类
clsPerson
语句后面添加以下代码。public string FirstName; public string MI; public string LastName;
切换到 Visual Studio 中 Program.cs 的代码窗口。
在 方法中
void Main
,声明并创建 类的clsPerson
实例:clsPerson p = new clsPerson();
设置 对象的属性
clsPerson
:p.FirstName = "Jeff"; p.MI = "A"; p.LastName = "Price";
命名空间
Xml.Serialization
包含一个XmlSerializer
类,该类将对象序列化为 XML。 创建 实例XmlSerializer
时,将要序列化的类的类型传递到其构造函数中:System.Xml.Serialization.XmlSerializer x = new System.Xml.Serialization.XmlSerializer(p.GetType());
方法
Serialize
用于将对象序列化为 XML。 序列化已重载,可以将输出发送到TextWriter
、Stream
或XMLWriter
对象。 在此示例中,将输出发送到控制台:x.Serialize(Console.Out,p); Console.WriteLine(); Console.ReadLine();
完整代码列表
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();
}
}
验证
若要验证项目是否正常工作,请按 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>
疑难解答
对象 Xml.Serialization.XmlSerializer
仅执行浅层序列化。 如果还想要序列化对象或子对象的私有变量,则必须使用深度序列化。