.net:如何调试XmlSerializer.Deserialize错误?

时间:2009-04-05 02:46:41

标签: .net xml-serialization

在开发过程中,我不止一次看到xml这样的读错误:

TestData.ReadFromXml:xml反序列化错误:XML文档中存在错误(2,2)..

(2,2)究竟是指什么?它是xml文件中的第2行吗?第2行,令牌2,什么?

我是否可以添加任何调试选项以更好地解决问题?

编辑:这是前两行:

<?xml version="1.0" encoding="utf-8"?>
<TestSession xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">

所以它会抱怨第二行的'T'字符?这是我刚刚序列化的一个类,而且形式很好。反序列化时,我认为它不喜欢类中的某些东西......这也许可以解释为什么它在TestSession中的T处停止。如果它告诉你它不喜欢它会很好。

3 个答案:

答案 0 :(得分:2)

它是(行,字符)并从1开始(不是基于0)。

您应该检查InnerException以获得更准确的错误消息。 看看你的例子,它可能是这样的:

"<TestSession> was not expected."

您还可以通过将XmlRootAttribute应用于您的班级来更改序列化名称。

答案 1 :(得分:1)

这是第2行,第2个字符。

我建议您在Visual Studio中打开XML文件,然后查看“错误”窗口以查看它是否有抱怨。

答案 2 :(得分:0)

尝试一些xml验证工具来验证你的xml文件/内容,做一个谷歌,你会发现一些。