2

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

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

是否有一些我可以添加的属性或其他方式为我自动生成索引属性?

4

3 回答 3

2

最好的方法是按照你说的做,像这样向“SomeChildClass”添加一个属性

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

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

于 2008-10-02T15:51:14.603 回答
0

您可能需要研究实现 System.Xml.Serialization.IXmlSerializable 来完成此操作。

于 2008-10-02T15:35:41.460 回答
0

您可以检查 XmlAttributeOverrides 类。

于 2008-10-02T15:40:54.847 回答