仅序列化数据的反序列化失败,为什么?
我正在尝试在 silverlight 中序列化和反序列化对象,但似乎无法让它工作。序列化工作得很好,但它抱怨我的 rootObject 不是预期的。我不明白,因为是 Silverlight 生成了 XML。
顺便提一句;我还是 C# 新手,
我有一个类,如下所示:
[XmlRoot("DataStorage")] // has no effect
public class DataStorage
{
public string type { get; set; }
public string imgUrl { get; set; }
public List<AbstractionObject> children { get; set; }
public DataStorage()
{
type = "default";
children = new List<AbstractionObject>();
}
}
当由 Silverlight 序列化时,它会产生:
<?xml version="1.0" encoding="utf-8"?>
<DataStorage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<type>default</type>
<children />
</DataStorage>
但是,当我尝试反序列化时,它会产生:
System.InvalidOperationException 未由用户代码处理 消息=XML 文档中存在错误 (2, 2)。
内部异常:System.InvalidOperationException
Message=
我的反序列化代码如下:
// create the xmlSerializer for DataObject
XmlSerializer xmlSerializer = new XmlSerializer(typeof(DataObject));
// Open the file again for reading.
StreamReader fileStream = new StreamReader(isoStore.OpenFile("IsoStoreFile.xml", FileMode.Open));
XmlReader xmlReader = XmlReader.Create(fileStream);
DataObject deserializedObject = (DataObject)xmlSerializer.Deserialize(xmlReader);
fileStream.Close();
Debug.WriteLine(deserializedObject);
有什么想法吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我不知道这是否只是您示例中的拼写错误,但是您在第一个块中定义的类是“DataStorage”,并且您正在序列化和反序列化“DataObject”,这可能解释了为什么它在遇到“数据存储”。
I don't know if this may just be a typo in your example, but the class you've defined in the first block is "DataStorage" and you're serializing and deserializing a "DataObject" which may explains why it's breaking when it encounters "DataStorage".