2008-10-02 68 views
2

我有一个类,看起来像这样包括XML序列化arrary指数

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

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

回答

2

最好的办法是做你所说的话和属性添加到“SomeChildClass”像这样

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

然后但您要添加这些项目到您的阵列,确保该物业获取的​​一组。然后当你序列化.... Presto!

+0

我希望有更好的解决方案,但这很简单,很有效。 – TonyB 2008-10-13 03:47:12

0

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

0

您可以检查XmlAttributeOverrides类。