我正在尝试反序列化以下 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"由于某种原因没有被反序列化。
类(class)如下
[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);
}
关于c# - XML 到对象反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43484673/