为什么 VS 排序 XML class 孩子的字母顺序,以及如何避免这种情况?
Why does VS sort XML class childs alphabetical, and how to avoid that?
我在预定义结构中编写了一个 .cs 文件以读取特定类型的 XML 文件。该文件下面还有很多 classes。此时约67轮。
这是我读取 .tcx 文件的代码,这些文件是 XML 个文件。
ModelData _xmlConfigData = new ModelData();
XmlSerializer _xmlSerializer = new XmlSerializer(typeof(ModelData));
try
{
using (FileStream filestream = new FileStream(xmlFilePath, FileMode.Open, FileAccess.Read))
{
_xmlConfigData = (ModelData)_xmlSerializer.Deserialize(filestream);
}
}
catch (Exception ex)
{
MessageBox.Show("Wrong XML structure read in. Please select another XML file:" + ex);
_xmlConfigData = null;
}
InvokeExtension.CreateListboxEntry(InvokeExtension.INFO + "TCX read successful", _lBox);
InvokeExtension.SetProgressbarValue(1000, _pBar);
几十万行读取没有错误。但是,如果我查看我的 class object(在调试时),子 class 将按字母顺序列出。我唯一要做的就是将 .tcx 读入 ModelData-class-object 并将其写出到一个新文件中。
这是我的作者代码:
写入新文件后,XML 结构看起来很完美,但是 一些 child 元素现在与原始文件相比按其他方向排序。这引起了问题。我不知道为什么以及如何防止 child 节点的排序。 在我看来,child 节点在 [=33] 中的顺序并不重要=] 文件.
默认情况下,XmlSerializer 将按字母顺序写出所有元素。
您可以通过使用 [XmlElement]
attribute, specifying an index value for that attribute's XmlElementAttribute.Order
属性.
修饰 所有 元素来更改此设置
请注意,一旦您选择对一个元素执行此操作,就必须对 所有 个元素执行此操作。
我在预定义结构中编写了一个 .cs 文件以读取特定类型的 XML 文件。该文件下面还有很多 classes。此时约67轮。
这是我读取 .tcx 文件的代码,这些文件是 XML 个文件。
ModelData _xmlConfigData = new ModelData();
XmlSerializer _xmlSerializer = new XmlSerializer(typeof(ModelData));
try
{
using (FileStream filestream = new FileStream(xmlFilePath, FileMode.Open, FileAccess.Read))
{
_xmlConfigData = (ModelData)_xmlSerializer.Deserialize(filestream);
}
}
catch (Exception ex)
{
MessageBox.Show("Wrong XML structure read in. Please select another XML file:" + ex);
_xmlConfigData = null;
}
InvokeExtension.CreateListboxEntry(InvokeExtension.INFO + "TCX read successful", _lBox);
InvokeExtension.SetProgressbarValue(1000, _pBar);
几十万行读取没有错误。但是,如果我查看我的 class object(在调试时),子 class 将按字母顺序列出。我唯一要做的就是将 .tcx 读入 ModelData-class-object 并将其写出到一个新文件中。
这是我的作者代码:
写入新文件后,XML 结构看起来很完美,但是 一些 child 元素现在与原始文件相比按其他方向排序。这引起了问题。我不知道为什么以及如何防止 child 节点的排序。 在我看来,child 节点在 [=33] 中的顺序并不重要=] 文件.
默认情况下,XmlSerializer 将按字母顺序写出所有元素。
您可以通过使用 [XmlElement]
attribute, specifying an index value for that attribute's XmlElementAttribute.Order
属性.
请注意,一旦您选择对一个元素执行此操作,就必须对 所有 个元素执行此操作。