首先让我说看到以下问题:
我也看到人们声明你在类中指定属性的顺序是它们将被序列化的顺序。但是,在我的情况下,我有一个具有属性的基类,所以这似乎没有成功。
我有以下两个类:
public class MyClass : BaseClass
{
[XmlAttribute()]
public string Value1 { get; set; }
public MyClass()
: base()
{
Value1 = string.Empty;
}
}
public class BaseClass
{
[XmlAttribute()]
public string Value2 { get; set; }
[XmlAttribute()]
public string Value3 { get; set; }
public BaseClass()
{
Value2 = string.Empty;
Value3 = string.Empty;
}
}
当序列化为XML元素的属性时,它们会按顺序显示Value2, Value3, Value1
。我希望他们按照Value1, Value2, Value3
的顺序出现。
我使用以下方法将XML保存到磁盘:
public static void Save<T>(string path, T contents)
{
using (StreamWriter sw = new StreamWriter(File.OpenWrite(path)))
{
XmlSerializer xml = new XmlSerializer(typeof(T));
xml.Serialize(sw, contents, ns);
}
}
有什么方法可以指定属性顺序吗?与元素一样:
[XmlElementAttribute(Order = 1)]
对于那些会说类似于&#34的人;订单并不重要&#34;或者&#34;如果它有效,你为什么需要更改订单&#34;或者&#34; XML并不意味着可读&#34;。我的回答是肯定的,订单并不重要,而且有效。但是,当我调试我的代码并检查XML以确保它包含我期望的值时,如果属性按照我希望它们的顺序读取,则更容易阅读。