这是我的C#代码:
public static T Deserialize<T>(string input) where T : class
{
System.Xml.Serialization.XmlSerializer ser =
new System.Xml.Serialization.XmlSerializer(typeof(T));
using (StringReader sr = new StringReader(input))
{
var test = ser.Deserialize(sr); //*this is the line that breaks*
return (T)ser.Deserialize(sr);
}
}
这是我的XML
<releaseinfo>
<mediapackagedirectory>C:\\Temp\\Test1\\</mediapackagedirectory>
<revision>A</revision>
<files>
<file>C:\\Temp\\Test1\\test1.zip</file>
<file>C:\\Temp\\Test1\\test1.zip</file>
</files>
<target>C:\\Temp\\Target\\</target>
</releaseinfo>
这是我得到的错误:
Exception: {"There is an error in XML document (1, 2)."}
InnerException: {"<releaseinfo xmlns=''> was not expected."}
即使我的xml没有名称空间,我遇到的错误似乎也与名称空间有关。完全如图所示。
答案 0 :(得分:3)
假设您有一些“ Releaseinfo”类,请在顶部添加以下属性:
[Serializable, XmlRoot("releaseinfo")]
public partial class Releaseinfo
{
...
}
更多详情:
也:
问:为什么要反序列化两次?为什么不只是return (T)ser.Deserialize(sr);
?第一行只是“测试代码”吗?
请注意:请尽可能使用文本(相对于屏幕截图)。