如何實(shí)現(xiàn)C#的XML序列化

c#
小樊
86
2024-09-14 20:54:33

在C#中,可以使用System.Xml.Serialization命名空間中的類(lèi)來(lái)實(shí)現(xiàn)XML序列化

  1. 首先,創(chuàng)建一個(gè)要序列化的類(lèi)。這個(gè)類(lèi)應(yīng)該包含一些公共屬性和字段,這些將被序列化為XML元素。例如:
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }
}
  1. 接下來(lái),創(chuàng)建一個(gè)XmlSerializer對(duì)象,用于將對(duì)象序列化為XML。例如:
Person person = new Person { Name = "John", Age = 30 };
XmlSerializer serializer = new XmlSerializer(typeof(Person));
  1. 使用StringWriterFileStream將序列化后的XML保存到字符串或文件中。例如:
// 序列化到字符串
StringWriter writer = new StringWriter();
serializer.Serialize(writer, person);
string xmlString = writer.ToString();

// 序列化到文件
using (FileStream fs = new FileStream("person.xml", FileMode.Create))
{
    serializer.Serialize(fs, person);
}
  1. 若要反序列化XML字符串或文件回對(duì)象,請(qǐng)使用XmlReaderFileStream。例如:
// 反序列化字符串
XmlReader reader = XmlReader.Create(new StringReader(xmlString));
Person deserializedPerson = (Person)serializer.Deserialize(reader);

// 反序列化文件
using (FileStream fs = new FileStream("person.xml", FileMode.Open))
{
    Person deserializedPersonFromFile = (Person)serializer.Deserialize(fs);
}

完成上述步驟后,你就可以實(shí)現(xiàn)C#的XML序列化和反序列化了。注意,這里的示例僅適用于簡(jiǎn)單的類(lèi)。對(duì)于更復(fù)雜的類(lèi)(如包含集合、繼承等),可能需要進(jìn)行額外的配置。有關(guān)詳細(xì)信息,請(qǐng)參閱官方文檔。

0