.NET オブジェクトをシリアル化/逆シリアル化する作業を行っています。XML ファイルの要件として、オブジェクトは という名前のマスター ノード内にある必要がありますmycompany
。ファイルの例を次に示します。
<?xml version="1.0" encoding="utf-8"?>
<mycompany>
<station>
<serial>VAA008090067</serial>
</station>
</mycompany>
これを逆シリアル化する際に問題が発生しています。mycompany
シリアライザーに「デシリアライズする前にノードを掘り下げてください」と伝える方法がわかりません。
これが私の現在のデシリアライゼーションコードです(ルートノードを考慮していません):
Stream binaryStream = File.Open(Filename, FileMode.Open);
XmlSerializer xformatter = xformatter = new XmlSerializer(typeof(T));
obj = (T)xformatter->Deserialize(stream);
次のコードを実行しようとしました: を作成XmlTextStream
し、ファイル ヘッダー ノードとノードを読み取りmycompany
、ストリームをシリアライザーに渡します。
Stream binaryStream = File.Open(Filename, FileMode.Open);
xmlReader = gcnew XmlTextReader(binaryStream);
xmlReader.Read(); // add error checking
xmlReader.Read(); // add error checking
xformatter = gcnew XmlSerializer(T.typeid);
obj = (T)xformatter.Deserialize(xmlReader);
上記は機能しませんXmlElement error: Root element is missing
。
簡単な解決策があることは知っていますが、見つけることができません。