温馨提示×

C# XML序列化与反序列化

c#
小樊
81
2024-10-14 13:21:59
栏目: 编程语言

在C#中,XML序列化和反序列化是将对象转换为XML格式以及将XML格式还原为对象的过程。这允许您以XML形式存储和传输对象数据。

序列化是将对象转换为XML字符串的过程。在C#中,您可以使用System.Xml.Serialization命名空间中的类来实现序列化。以下是一个简单的示例:

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

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

class Program
{
    static void Main()
    {
        Person person = new Person { FirstName = "John", LastName = "Doe", Age = 30 };

        XmlSerializer serializer = new XmlSerializer(typeof(Person));

        using (StringWriter writer = new StringWriter())
        {
            serializer.Serialize(writer, person);
            string xmlString = writer.ToString();
            Console.WriteLine(xmlString);
        }
    }
}

在这个例子中,我们创建了一个Person类,并使用XmlSerializer类将其序列化为XML字符串。

反序列化是将XML字符串还原为对象的过程。以下是一个简单的示例:

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

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

class Program
{
    static void Main()
    {
        string xmlString = "<Person><FirstName>John</FirstName><LastName>Doe</LastName><Age>30</Age></Person>";

        XmlSerializer serializer = new XmlSerializer(typeof(Person));

        using (StringReader reader = new StringReader(xmlString))
        {
            Person person = (Person)serializer.Deserialize(reader);
            Console.WriteLine($"FirstName: {person.FirstName}, LastName: {person.LastName}, Age: {person.Age}");
        }
    }
}

在这个例子中,我们使用XmlSerializer类将XML字符串反序列化为Person对象。

注意:为了使序列化和反序列化正常工作,您需要为类添加[Serializable]属性。这个属性告诉序列化器该类可以被序列化。

0