【发布时间】:2015-08-26 13:21:14
【问题描述】:
我正在尝试使用 NetDataContractSerializer 反序列化由 NetDataContractSerializer 序列化的 XML。
我正在使用 NetDataContractSerializer 而不是 DataContractSerializer,因为我正在序列化包含一些多维数组的类。 我用一些 W3 验证器验证了 XML 文件,它通过了。
这是反序列化部分
using (FileStream reader = new FileStream(filePath,FileMode.Open))
{
NetDataContractSerializer ser = new NetDataContractSerializer();
Universe loadedUniverse = (Universe)ser.ReadObject(reader);
}
这是我得到的例外
值不能为空。参数:来源
我试图深入调试它,但不明白那里到底出了什么问题。 看起来 FileStream 正在正确获取文件的内容。
还尝试使用 XmlReader 而不是 FileStream,得到了同样的错误。使用 XmlReader 我看到它的序列化类的类型也很好,所以我排除了找不到文件或类似的情况。
这是代码的序列化部分
NetDataContractSerializer ser =
new NetDataContractSerializer();
using (FileStream file = new FileStream(target, FileMode.Create))
{
ser.WriteObject(file, universe);
}
Here is the xml file(抱歉找不到在线XML分享工具)
我试图解决这个问题的方式有什么问题吗? 将不胜感激您的帮助!
【问题讨论】:
-
filePath 的确切值是多少?
-
filePath 的值为 save.xml。它在目录中作为 exe 找到
标签: c# xml serialization