在XML序列化中包含数组索引

时间:2008-10-02 15:24:10

标签: c# .net xml-serialization

我有一个看起来像这样的课程

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添加索引属性,但是我必须记住在序列化对象之前循环遍历数组并设置该值。

我可以添加一些属性或者为我自动生成索引属性的其他方法吗?

3 个答案:

答案 0 :(得分:2)

最好的方法是按照你所说的做,并将属性添加到“SomeChildClass”中,如下所示

[XmlAttribute("Index")]
public int Order
{  { get; set; }   }

然后,您要将这些项添加到数组中,请确保已设置此属性。然后当你序列化.... Presto!

答案 1 :(得分:0)

您可能需要考虑实现System.Xml.Serialization.IXmlSerializable来实现此目的。

答案 2 :(得分:0)

您可以检查XmlAttributeOverrides类。