在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]
屬性。這個屬性告訴序列化器該類可以被序列化。