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 = "小刚25";
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 标签,就自动把里面的值填回对象的属性里。

posted @ 2026-08-05 23:27  菜鸟的奋斗军  阅读(6)  评论(0)    收藏  举报