Testのタイプのクラス要素をシリアル化しようとすると、XmlRootを使用して設定されたルート要素を「テスト」として提供します。XmlRootで装飾されたシリアライズクラス、リストで使用するとエラーが発生する
Elemsクラスの要素をシリアル化しようとすると、テスト要素は "テスト"ではなくルート要素 "テスト"でシリアル化されます。
[XmlRoot("testing")]
public class Test
{
}
public class Elems
{
public List<Test> how = new List<Test>();
public Elems()
{
how.Add(new Test());
how.Add(new Test());
how.Add(new Test());
}
}
このElemsはシリアル化され、出力
、<Elems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x
mlns:xsd="http://www.w3.org/2001/XMLSchema">
<how>
<Test />
<Test />
<Test />
</how>
</Elems>
ではなく、これは私が必要とするものです。
<Elems xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x
mlns:xsd="http://www.w3.org/2001/XMLSchema">
<how>
<testing />
<testing />
<testing />
</how>
</Elems>
おかげ
XMLRootはにのみ適用され - 最も外側のオブジェクト。 –
には、TestクラスがList内のルートとして「テスト」にシリアル化されている方法はありますか? – Rozuur
あなたは[XmlElement]または[XmlArrayItem]を使用することができます –