xml をオブジェクトの配列に逆シリアル化するために使用できる汎用メソッドを作成しようとしています。
次のような XML を指定します。
<people>
<person>
<someElement>content</someElement>
</person>
<person>
<someElement>more content</someElement>
</person>
</people>
以下のコードでは として示されていますxmlDoc
。そして、person
クラスT
XmlNodeReader reader = new XmlNodeReader(xmlDoc.DocumentElement);
XmlSerializer xmlSerializer = new XmlSerializer(typeof(T[]), new XmlRootAttribute(xmlDoc.DocumentElement.Name));
results = xmlSerializer.Deserialize(reader) as T[];
person[]
これは期待どおりに機能し、2 つのエントリで返されます。
ただし、私が使用している API では、結果が 1 つしか返されない場合は、次のように返されます。
<person>
<someElement>content</someElement>
</person>
そして、私の逆シリアル化は失敗します。person[]
空のままです。
これを実装する最良の方法について何か考えはありますか?
編集
間に XSLT を実行しT
、ルート ノードと一致する場合は in の名前を渡し、ラッピング ノードを追加することを考えています。