我正在努力让我的 .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
.
我知道有一个简单的解决方案,但我找不到它。