在XML序列化中包含arrary索引
时间:2020-03-06 15:02:01 来源:igfitidea点击:
我有一堂课,看起来像这样
public class SomeClass
{
public SomeChildClass[] childArray;
}
它将从XMLSerializer输出XML,如下所示:
<SomeClass>
<SomeChildClass>
...
</SomeChildClass>
<SomeChildClass>
...
</SomeChildClass>
</SomeClass>
但我希望XML看起来像这样:
<SomeClass>
<SomeChildClass index=1>
...
</SomeChildClass>
<SomeChildClass index=2>
...
</SomeChildClass>
</SomeClass>
其中index属性等于数组中各项的位置。
我可以使用" XMLAttribute"属性将索引属性添加到SomeChildClass,但是随后我必须记住在序列化对象之前循环遍历数组并设置该值。
是否可以添加一些属性或者为我自动生成索引属性的其他方法?
解决方案
我们可能需要研究实现System.Xml.Serialization.IXmlSerializable才能完成此任务。
我们可以检查XmlAttributeOverrides类。
最好的方法是按照我们说的做,然后像这样将属性添加到" SomeChildClass"中
[XmlAttribute("Index")]
public int Order
{ { get; set; } }
然后将这些项添加到数组中,请确保已设置此属性。然后当我们序列化时...。

