XML
C# 可以把对象装进 XML 盒子(序列化),也可以从 XML 盒子里取出对象(反序列化),还能直接手写标签。
——————————————————————————————————————————————————————————————————————————————————————————————
案例 1:对象变成 XML(序列化)
csharp
using System.IO;
using System.Xml.Serialization;
public class User { public string Name = ""; public int Age; }
var user = new User { Name = "小明", Age = 20 };
var serializer = new XmlSerializer(typeof(User));
using var writer = new StringWriter();
serializer.Serialize(writer, user);
Console.WriteLine(writer.ToString());
Serialize 把 User 对象翻译成 XML 文本,自动加上
——————————————————————————————————————————————————————————————————————————————————————————————
案例 2:手写 XML(XDocument)
csharp
using System.Xml.Linq;
var doc = new XDocument(
new XElement("user",
new XElement("name", "小红"),
new XElement("age", "18")
)
);
Console.WriteLine(doc);
XElement 就像搭积木,一层一层拼出 XML,不用写字符串拼接。
——————————————————————————————————————————————————————————————————————————————————————————————
案例 3:XML 变回对象(反序列化)
csharp
using System.IO;
using System.Xml.Serialization;
string xml = "
var serializer = new XmlSerializer(typeof(User));
using var reader = new StringReader(xml);
var user = (User)serializer.Deserialize(reader);
Console.WriteLine($"{user.Name} {user.Age}");
Deserialize 看到 XML 标签,就自动把里面的值填回对象的属性里。

浙公网安备 33010602011771号