【发布时间】:2013-08-26 17:12:20
【问题描述】:
我正在尝试将以下类序列化为 XML:
[XmlRoot("FCS_SET_SCH")]
public class DDCSendReceiveScheduleXml
{
private const string TABLE_NAME = "DDCScheduler";
[XmlElement("schedule",Order=1)]
public List<ScheduleXml> ScheduleList { get; set; }
[XmlElement("timetable",Order=2)]
public List<TimeTableXml> TimeTableXmlList { get; set; }
public DDCSendReceiveScheduleXml()
{
}
}
如果我要分别序列化一个对象,则顺序标志有效,但它似乎无法控制列表中的顺序。
这是 XmlSerializer 目前序列化两个列表的方式:
<FCS_SET_SCH xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<schedule>...</schedule>
<schedule>...</schedule>
<timetable>...</timetable>
<timetable>...</timetable>
</FCS_SET_SCH>
有什么方法可以控制序列化,使上述顺序按此顺序排列?
<FCS_SET_SCH xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<schedule>...</schedule>
<timetable>...</timetable>
<schedule>...</schedule>
<timetable>...</timetable>
</FCS_SET_SCH>
【问题讨论】:
-
为什么?除非您使用非常严格的解析器,否则 XML 中元素的顺序应该无关紧要。
-
@DStanley 正是如此。这适用于嵌入式设备上的解析器,它在 XML 的排序上有自己荒谬的规则。
标签: c# .net wpf xml serialization