c# - C# XML 序列化 - 基于数据的自定义排序
问题描述
我收到这样的 XML 文件:
<ToDoList>
<WakeUp Order="1">
<Eat Order="2" What="Breakfast">
<Work Order="3">
<Eat Order="4" What="Lunch">
<Work Order="5">
<Eat Order="6" What="Dinner">
<Sleep Order="7">
</ToDoList>
在反序列化此 XML 并处理任务后,我需要再次将其序列化并换出一些元素(例如,跳过午餐会将中间的“Eat”更改为“Skip”):
<ToDoList>
<WakeUp Order="1">
<Eat Order="2" What="Breakfast">
<Work Order="3">
<Skip Order="4" What="Lunch">
<Work Order="5">
<Eat Order="6" What="Dinner">
<Sleep Order="7">
</ToDoList>
但是,C# XML 序列化希望将元素组合在一起,因此所有“Eat”元素都在一起,等等......我知道我可以使用 [XmlElement(Order = #)] 属性来指定自定义顺序,但这只是更改组的顺序。我试图弄清楚如何告诉序列化程序使用数据模型中的“订单”属性,而不是在 XmlElement 中对订单进行硬编码。
从概念上讲,我正在寻找这样的东西:
[XmlElement(Order = Item.Order.Value)] <------
public List<Item> ToDoList { get; set; }
...或订购回调。我检查了 MSDN 上的 XML 序列化文档,但没有找到类似的东西。有任何想法吗?
解决方案
推荐阅读
- r - 在 CentOs Linux 上安装 RStudio 服务器后,无法安装包非零退出状态
- vb.net - 在 VB.net 中使用 NDDE 如何正确捕获错误?
- python-3.x - 选择列表列表的子列表以定义关系
- webpack - Angular CLI 6 自定义 Webpack SCSS 加载器
- angular - 如何遍历 Angular 组件中数组中的每个模型?
- c# - 如何上传网站 (ASP.NET)
- c++ - LOWORD 和 HIWORD 操作
- javascript - 未捕获(承诺中)TypeError:无法将属性“innerHTML”设置为空
- c# - 与接口一起使用的新关键字
- java - 从 BlueJ 创建 Jar 文件时如何处理“发生 Java 异常”问题