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; }   }

ただし、これらの項目を配列に追加する場合は、このプロパティが設定されていることを確認してください。そして、連載すると・・・プレスト!

于 2008-10-02T15:51:14.603 に答える
0

XmlAttributeOverrides クラスを確認できます。

于 2008-10-02T15:40:54.847 に答える
0

これを実現するには、System.Xml.Serialization.IXmlSerializable の実装を検討する必要がある場合があります。

于 2008-10-02T15:35:41.460 に答える