我正在尝试对以下 XML 进行反序列化
-<Tables>
-<StaticGroups>
-<StaticGroup Name="111">
-<Table>
<TableName>Table1 Name</TableName>
<TableTag>Table1 Tag</TableTag>
</Table>
-<StaticGroup Name="111.1">
-<Table>
<TableName>Table1.1 Name</TableName>
<TableTag>Table1.1 Tag</TableTag>
</Table>
</StaticGroup>
</StaticGroup>
</StaticGroups>
</Tables>
由于某种原因,嵌套的 StaticGroup Name="111.1" 不会被反序列化。
课程如下
[XmlRoot("Tables")]
public class TablesXML
{
public TablesXML()
{
StaticTablesGroups = new List<StaticTablesGroup>();
}
[XmlArray("StaticGroups")]
[XmlArrayItem("StaticGroup", typeof(StaticTablesGroup))]
public List<StaticTablesGroup> StaticTablesGroups { get; set; }
}
public class StaticTablesGroup
{
public StaticTablesGroup()
{
GroupTables = new List<GroupTable>();
StaticTablesGroups = new List<StaticTablesGroup>();
}
[XmlAttribute("Name")]
public string Name { get; set; }
//[XmlArray("StaticGroup")]
[XmlElement("Table", typeof(GroupTable))]
public List<GroupTable> GroupTables { get; set; }
[XmlElement("StaticGroup")]
public List<StaticTablesGroup> StaticTablesGroups { get; set; }
}
public class GroupTable
{
[XmlElement("TableName")]
public string Name { get; set; }
[XmlElement("TableTag")]
public string Tag { get; set; }
}
第一个 Name = "111" 的 StaticGroup 反序列化成功,但 Name = "111.1" 的嵌套 StaticGroup 没有反序列化
我究竟做错了什么。请帮忙
如果您的问题与反序列化有关,那么发布您的反序列化代码可能是一个想法,您不觉得吗?
无论如何,这对我来说很好用:
string xml = "<Tables><StaticGroups><StaticGroup Name=\"111\"><Table><TableName>Table1 Name</TableName><TableTag>Table1 Tag</TableTag></Table><StaticGroup Name=\"111.1\"><Table><TableName>Table1.1 Name</TableName><TableTag>Table1.1 Tag</TableTag></Table></StaticGroup></StaticGroup></StaticGroups></Tables>";
XmlSerializer serializer = new XmlSerializer(typeof(TablesXML));
TablesXML tablesXml;
using (TextReader reader = new StringReader(xml))
{
tablesXml = (TablesXML)serializer.Deserialize(reader);
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句