1
私はこのようになり、「XML」ファイルを持っている:オブジェクトのリストの上にSerializeメソッドを使用して作成され複数のルートを持つC#でXMLを逆シリアル化する方法
<root>
<a>
<b>
</b>
</a>
</root>
<root>
<a>
<b>
</b>
</a>
</root>
<root>
<a>
<b>
</b>
</a>
</root>
....
。だから私はそれを逆シリアル化するための一致するクラスがあります。
今私はデシリアライズしようとすると、私は複数の根のエラーを取得します。 このファイルをオブジェクトのリストに再度逆シリアル化する方法はありますか?
私の考えの1つは、リストされたクラスの周りに別のクラスをラップし、それを "rootclass"のようなものと呼び、これだけを直列化することです。これは単一のルートにつながります。しかし、指定されたXMLファイルだけでそれを行うanotehrの方法はありますか?
私の直列化復元は、次のようになります。
static public List<CT> DeSerialize(string FileName)
{
XmlSerializer deserializer = new XmlSerializer(typeof(List<CT>), new XmlRootAttribute("root"));
List<CT> result;
using (FileStream fileStream = new FileStream(@FileName, FileMode.Open))
{
result = (List<CT>)deserializer.Deserialize(fileStream);
}
return result;
}
'一覧'と 'Array'は、独自のルートオブジェクトを作成するときに、シリアライズ。 List/Arrayオブジェクトをシリアライザに渡すのはなぜですか? –
dotNET
https://stackoverflow.com/questions/134494/is-there-any-difference-between-valid-xml-and-well-formed-xml/この投稿から恩恵を受ける可能性があります。 – FakeCaleb
プログラムの寿命中に新しい要素をファイルに保存します。だから私は本当に本当のルート要素を望んでいません – Hunselfunsel