C# 编程指南:XML序列化和反序列化

在C#中,XML序列化和反序列化是将对象转换为XML格式以及从XML格式还原对象的过程。XML是一种常用的数据交换格式,适用于跨平台和跨语言的数据传输。

部分
1
XML序列化(XML Serialization)
XML序列化是将对象转换为XML格式的过程。
在C#中,可以使用System.Xml.Serialization命名空间中的类来进行XML序列化。
using System;
using System.IO;
using System.Xml.Serialization;

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

public class Program
{
    static void Main(string[] args)
    {
        Person person = new Person { Name = "John", Age = 30 };

        XmlSerializer serializer = new XmlSerializer(typeof(Person));
        using (FileStream stream = new FileStream("person.xml", FileMode.Create))
        {
            serializer.Serialize(stream, person);
        }
    }
}

在上述示例中,我们定义了一个名为Person的可序列化类。我们使用XmlSerializer类创建一个XmlSerializer对象,并使用FileStream将Person对象序列化为XML文件。

部分
2
XML反序列化(XML Deserialization)
XML反序列化是将XML格式的数据还原为对象的过程。
在C#中,可以使用System.Xml.Serialization命名空间中的类来进行XML反序列化。
using System;
using System.IO;
using System.Xml.Serialization;

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

public class Program
{
    static void Main(string[] args)
    {
        XmlSerializer serializer = new XmlSerializer(typeof(Person));
        using (FileStream stream = new FileStream("person.xml", FileMode.Open))
        {
            Person person = (Person)serializer.Deserialize(stream);
            Console.WriteLine("Name: " + person.Name);
            Console.WriteLine("Age: " + person.Age);
        }
    }
}

在上述示例中,我们使用XmlSerializer类将之前序列化的XML文件反序列化为Person对象,并打印出对象的属性值。 请注意,在进行XML序列化和反序列化时,被操作的类需要满足一些要求,如类必须有一个无参数的构造函数,并且可以被序列化的属性需要有公共的get和set访问器。 除了使用System.Xml.Serialization命名空间中的类,还可以考虑使用其他的XML序列化库,如Newtonsoft.Json (Json.NET)中的JsonConvert类的DeserializeObject<T>()方法。

    目录

  • 1.
    XML序列化(XML Serialization)
  • 2.
    XML反序列化(XML Deserialization)