XmlSerializer可序列化公有可读写属性为XML,要求类有无参构造函数、属性具public get/set、类型可序列化;默认输出紧凑XML,可通过XmlWriterSettings控制缩进等格式。
用 XmlSerializer 可以轻松把对象的公有属性序列化为 XML,前提是类和属性满足基本要求。
XmlSerializer 只处理 public 且可读写的属性(有 get 和 set),不支持字段、private 成员、只读属性或索引器。类本身不需要特殊标记,但加 [Serializable] 没用(那是给 BinaryFormatter 用的)。
[Serializable] 的自定义类等不可序列化类型假设你有这样一个类:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
public DateTime BirthDate { get; set; }
}
序列化成 XML 的写法很简单:
var person = new Person { Name = "张三", Age = 28, BirthDate = new DateTime(1996, 5, 20) };
var serializer = new XmlSerializer(typeof(Person));
using (var writer = new StringWriter())
{
serializer.Serialize(writer, person);
string xml = writer.ToString(); // 得到格式化的 XML 字符串
Console.WriteLine(xml);
}
默认生成的 XML 标签名就是属性名,但你可以用特性微调:
[XmlElement("FullName")] → 把 Name 属性序列化为
[XmlAttribute("age")] → 让 Age 作为属性而非子元素:
[XmlIgnore] → 完全跳过某个属性[XmlRoot("Employee")] → 把根元素名从 Person 改成 Employee
XmlSerializer 默认输出不带缩进的紧凑 XML。如果需要可读格式,可用 XmlWriter 配置:
var settings = new XmlWriterSettings
{
Indent = true,
IndentChars = " ",
OmitXmlDeclaration = false
};
using (var writer = XmlWriter.Create(Console.Out, settings))
{
serializer.Serialize(writer, person);
}
这样输出就会自
动缩进,适合调试或展示。
基本上就这些。只要属性公开、可读写、类型支持,一行 Serialize 就搞定。
# 编码
# c#
# 构造函数
# xml
# 指针
# public
# private
# 访问器
# 委托
# 对象
# 序列化
# 有无
# 就会
# 那是
# 不需要
# 可以用
# 你有
# 很简单
# 这样一个
# 自定义
相关文章:
rsync同步时出现rsync: failed to set times on “xxxx”: Operation not permitted
如何零成本快速生成个人自助网站?
如何选择靠谱的建站公司加盟品牌?
如何选择香港主机高效搭建外贸独立站?
香港服务器选型指南:免备案配置与高效建站方案解析
如何通过商城自助建站源码实现零基础高效建站?
实惠建站价格推荐:2025年高性价比自助建站套餐解析
如何在IIS中新建站点并配置端口与物理路径?
如何撰写建站申请书?关键要点有哪些?
建站之星后台管理系统如何操作?
详解jQuery停止动画——stop()方法的使用
定制建站策划方案_专业建站与网站建设方案一站式指南
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
c++怎么用jemalloc c++替换默认内存分配器【性能】
大连网站制作公司哪家好一点,大连买房网站哪个好?
电影网站制作价格表,那些提供免费电影的网站,他们是怎么盈利的?
手机网站制作与建设方案,手机网站如何建设?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
c++怎么实现高并发下的无锁队列_c++ std::atomic原子变量与CAS操作【详解】
专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?
制作门户网站的参考文献在哪,小说网站怎么建立?
网站设计制作公司地址,网站建设比较好的公司都有哪些?
如何在腾讯云服务器快速搭建个人网站?
Swift中swift中的switch 语句
外汇网站制作流程,如何在工商银行网站上做外汇买卖?
免费视频制作网站,更新又快又好的免费电影网站?
建站之星后台管理:高效配置与模板优化提升用户体验
建站之星在线版空间:自助建站+智能模板一键生成方案
正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?
如何快速生成ASP一键建站模板并优化安全性?
网站制作网站,深圳做网站哪家比较好?
如何快速搭建高效简练网站?
文字头像制作网站推荐软件,醒图能自动配文字吗?
网站制作专业公司有哪些,如何制作一个企业网站,建设网站的基本步骤有哪些?
Python多线程使用规范_线程安全解析【教程】
如何用y主机助手快速搭建网站?
javascript中对象的定义、使用以及对象和原型链操作小结
建站之星安装步骤有哪些常见问题?
武汉网站如何制作,黄黄高铁武穴北站途经哪些村庄?
如何做网站制作流程,*游戏网站怎么搭建?
北京建设网站制作公司,北京古代建筑博物馆预约官网?
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
如何将凡科建站内容保存为本地文件?
如何获取开源自助建站系统免费下载链接?
建站DNS解析失败?如何正确配置域名服务器?
宝塔建站无法访问?如何排查配置与端口问题?
制作网站怎么制作,*游戏网站怎么搭建?
公司网站制作价格怎么算,公司办个官网需要多少钱?
如何高效完成独享虚拟主机建站?
c# 在高并发场景下,委托和接口调用的性能对比
*请认真填写需求信息,我们会在24小时内与您取得联系。