这是我尝试反序列化的XML。我一直得到“resultConfig xmlns =''>不被期待。”}
我厌倦了关于此问题的stackoverflow上的所有解决方案没有真正起作用。提前谢谢。
<?xml version="1.0" encoding="UTF-8" ?>
<resultConfig>
<folders>
<folder>
<location>C:\</location>
</folder>
<folder>
<location>C:\Temp</location>
</folder>
</folders>
<resultClasses>
<resultClass name="ScdExctractSqlXYZ" type="CSV">
<resultTypeQuery>REGEX</resultTypeQuery>
<testIdQuery>REGEX</testIdQuery>
</resultClass>
<resultClass name="SubNotification" type="XML">
<resultTypeQuery>XPATH</resultTypeQuery>
<testIdQuery>XPATH</testIdQuery>
<transformation>something.xsl</transformation>
</resultClass>
</resultClasses>
</resultConfig>
我将我的类对象声明为:
namespace TestGen
{
public class ResultClasses
{
[XmlRoot("resultConfig")]
public class resultConfig
{
[XmlArray("folders")]
[XmlArrayItem("folder")]
public List<folder> folders { get; set; }
[XmlArray("resultClasses")]
[XmlArrayItem("resultClass")]
public List<resultClass> classes { get; set; }
}
public class folder
{
[XmlArray("location")]
public string location { get; set; }
}
public class resultClass
{
[XmlAttribute("name")]
public string name { get; set; }
[XmlAttribute("type")]
public string type { get; set; }
[XmlArrayItem("resultTypeQuery")]
public string resultTypeQuery { get; set; }
[XmlArrayItem("testIdQuery")]
public string testIdQuery { get; set; }
[XmlArrayItem("transformation")]
public string transformation { get; set; }
}
}
}
然后我以这种方式调用我的反序列化器:
using (FileStream reader = new FileStream(@"C:\ResultConfig.xml", FileMode.Open, FileAccess.Read))
{
XmlSerializer serializer = new XmlSerializer(typeof(ResultClasses));
var ei = serializer.Deserialize(reader);
}
答案 0 :(得分:0)
外部课程ResultClasses
有什么用?如果您删除它并使用new XmlSerializer(typeof(resultConfig))
它应该有效。