C#中是否有注释来迭代序列化创建的xml中数组元素的名称?

C#中是否有注释来迭代序列化创建的xml中数组元素的名称?,c#,xml,serialization,annotations,C#,Xml,Serialization,Annotations,我有一个包含元素的数组,在C#中使用序列化时,我希望在元素名称中进行迭代 假设我有一门课: class MyClass { public int[] MyArray { get; set; } } 当前,序列化的xml构建如下所示: <MyClass> <MyArray> <int>1</int> <int>2</int> ... </MyArr

我有一个包含元素的数组,在C#中使用序列化时,我希望在元素名称中进行迭代

假设我有一门课:

class MyClass {
    public int[] MyArray { get; set; }
}
当前,序列化的xml构建如下所示:

<MyClass>
    <MyArray>
        <int>1</int>
        <int>2</int>
        ...
    </MyArray>
</MyClass>
<MyClass>
    <MyArray>
        <int1>1</int1>
        <int2>2</int2>
        ...
    </MyArray>
</MyClass>

1.
2.
...
但我需要它看起来像这样:

<MyClass>
    <MyArray>
        <int>1</int>
        <int>2</int>
        ...
    </MyArray>
</MyClass>
<MyClass>
    <MyArray>
        <int1>1</int1>
        <int2>2</int2>
        ...
    </MyArray>
</MyClass>

1.
2.
...
我想与另一个不允许两个元素具有相同XML路径的系统通信,因此默认序列化是不可能的

我知道我可以使用诸如
[XmlArrayItem(“int”)]
之类的注释,但我认为不可能将数组的元素命名为不同的名称

最糟糕的情况是,我必须实现IXmlSerializable接口,但这将是一个很大的工作,因为基本上,我必须自己编写带有反射的完整序列化

因此,如果有人知道如何使用注释或任何其他技巧迭代数组元素的名称,我将非常高兴


解决方案:我使用了类似问题的解决方案。为了解决我的问题,我把它改了一点,但现在它开始工作了!谢谢你的评论和提示

不,你不需要。不要这样命名标签!那些会解析你的xml的人会诅咒你。我是为另一个系统编程的人。但是在那里,我只能使用xml路径读取数据,如果我想要数组中的所有元素,它们必须有不同的名称,这是一个非常糟糕的xml设计。如果您可以控制接收系统,您可能应该更改它以支持具有相同名称的多个标记。为什么不在接收端使用标准的XML反序列化?在xpath中,可以通过索引进行访问:
/int[i]
。不需要使用不同的名称。我认为更好的设计是使用附加属性。就像
1
No一样,您不需要这样做。不要这样命名标签!那些会解析你的xml的人会诅咒你。我是为另一个系统编程的人。但是在那里,我只能使用xml路径读取数据,如果我想要数组中的所有元素,它们必须有不同的名称,这是一个非常糟糕的xml设计。如果您可以控制接收系统,您可能应该更改它以支持具有相同名称的多个标记。为什么不在接收端使用标准的XML反序列化?在xpath中,可以通过索引进行访问:
/int[i]
。不需要使用不同的名称。我认为更好的设计是使用附加属性。类似于
1