通八洲科技

C#如何序列化对象为XML XmlSerializer用法

日期:2026-01-02 00:00 / 作者:幻夢星雲
XmlSerializer 是 C# 中轻量级 XML 序列化工具,支持 POCO 类的序列化与反序列化,需配合 XmlRoot、XmlElement 等特性控制结构,原生支持数组和 List,但不支持 Dictionary;注意编码、XML 声明、性能缓存及类型限制。

XmlSerializer 是 C# 中最常用、最轻量的 XML 序列化工具,适合将简单对象(尤其是 POCO 类)快速转为 XML 字符串或文件,也支持反序列化。它不依赖属性标记也能工作,但要控制输出结构,必须配合 [XmlRoot][XmlElement][XmlAttribute] 等特性使用。

基础用法:默认序列化

只要类有公共读写属性或字段,且有无参构造函数,就能直接序列化:

注意:私有成员、只读属性、泛型集合(如 List)默认可序列化,但字典(Dictionary)不支持,需换用 SerializableDictionary 或自定义处理。

控制 XML 结构:常用特性

用特性精确指定节点名、顺序、是否为属性、是否忽略等:

例如:public string FirstName { get; set; } 加上 [XmlElement("first-name")],就会生成 Tom

处理集合与嵌套对象

XmlSerializer 原生支持数组和 List,但需注意:

实用技巧与避坑提醒

实际开发中容易遇到的问题和应对方式:

不复杂但容易忽略。