オブジェクトのいくつかのリストをxmlにシリアル化しようとしています。リストにはさまざまなタイプがありますが、すべてのリストは、最上位のリストオブジェクトに同じ属性を持っている必要があります。
私が取得しようとしているのは、トップレベルの「カウント」とリスト内のすべてのアイテムのオブジェクトの名前です。
<JobResult Count="2">
<Job>
<Id>1</Id>
</Job>
<Job>
<Id>2</Id>
</Job>
</JobResult>
次に、別のリストについて:
<PersonResult Count="1">
<Person>
<Id>1</Id>
</Person>
</PersonResult>
私が使用しているコードは次のとおりです。
[XmlRoot()]
public class Result<T>
{
[XmlElement()]
public List<T> Items { get; set; }
public Result()
{
this.Items = new List<T>();
}
[XmlAttribute("Count")]
public int ItemCount
{
get
{
return this.Items.Count;
}
set
{
}
}
}
var jobs= new Result<Job>();
var persons= new Result<Person>();
私が得ているのは:
<ResultOfJob Count="2">
<Item>
<Id>1</Id>
</Item>
<Item>
<Id>2</Id>
</Item>
</ResultOfJob >
このような属性の命名を試しましたが、itemの代わりに<_x007B_0_x007D_>を取得します。
[XmlElement({0})]
public List<T> Items { get; set; }
アイテムの名前を動的に処理するための最良の方法は何ですか?