📜  c# 序列化为 xml - C# (1)

📅  最后修改于: 2023-12-03 15:29:47.596000             🧑  作者: Mango

C#序列化为XML

C#中序列化对象为XML是一种常见的数据持久化方式,即将对象转换为XML格式的数据并保存在文件或网络中,以便以后再读取和反序列化。本文将介绍在C#中如何实现将一个对象序列化为XML数据。

1. 序列化对象

要将一个对象序列化为XML,需要使用System.Xml.Serialization.XmlSerializer类。

// 创建一个XmlSerializer类的实例
XmlSerializer serializer = new XmlSerializer(typeof(T));
// 序列化数据
serializer.Serialize(writer, objectToSerialize);

其中,T为要序列化的对象的类型,writer是用于将XML数据写入的流或文本编写器,objectToSerialize是要序列化的对象实例。在实例化XmlSerializer时,将T传递给构造函数。

2. 示例代码

下面是一个简单的示例代码,演示如何将Person对象序列化为XML数据:

using System.Xml.Serialization;
using System.IO;

public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}

public static void SerializeObjectToXml(Person person)
{
    XmlSerializer serializer = new XmlSerializer(typeof(Person));
    using (TextWriter writer = new StreamWriter(@"C:\temp\person.xml"))
    {
        serializer.Serialize(writer, person);
    }
}

SerializeObjectToXml()方法中,创建了一个Person对象,然后调用XmlSerializerSerialize()方法将对象序列化为XML数据并保存到C:\temp\person.xml文件中。在文件被序列化后,可以使用StreamReader来反序列化该文件。

3. XML输出

下面是生成的XML文件的示例:

<?xml version="1.0" encoding="utf-8"?>
<Person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <Name>John Smith</Name>
  <Age>29</Age>
</Person>
4. 总结

在C#中将对象序列化为XML是一个重要的数据持久化方式。本文介绍了使用XmlSerializer类将对象序列化为XML数据的方法,并提供了示例代码和XML输出效果。