1
我想序列化簡單的XML文件爲對象:XML序列反對
<?xml version="1.0"?>
-<Tables>
-<StaticGroups>
-<StaticGroup Name="111">
-<Table>
<TableName>Table1 Name</TableName>
<TableTag>Table1 Tag</TableTag>
</Table>
-<Table>
<TableName>Table2 Name</TableName>
<TableTag>Table2 Tag</TableTag>
</Table>
</StaticGroup>
-<StaticGroup>
-<Table>
<TableName>Table3 Name</TableName>
<TableTag>Table3 Tag</TableTag>
</Table>
</StaticGroup>
</StaticGroups>
</Tables>
下面是類:
[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>();
}
[XmlAttribute("Name")]
public string Name { get; set; }
[XmlArray("StaticGroup")]
[XmlArrayItem("Table", typeof(GroupTable))]
public List<GroupTable> GroupTables { get; set; }
}
public class GroupTable
{
[XmlElement("TableName")]
public string Name { get; set; }
[XmlElement("TableTag")]
public string Tag { get; set; }
}
StaticGroup的名單正確地與Name屬性創建。
問題是Table/s(TableName和TableTag)由於某種原因未被序列化。我究竟做錯了什麼?
感謝
編輯#1 謝謝你馬克幫助與問題#1
現在我想要添加StaticGroup中另一個StaicGroup
-<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>
反序列化作品的權利除外嵌套不會從XML獲取數據
修改StaticTablesGroup類:
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", typeof(StaticTablesGroup))]
public List<StaticTablesGroup> StaticTablesGroups { get; set; }
}
不過,我查了序列化,正如馬克建議,並worksfine
謝謝你的幫助。我想更改XML包括StaticGroup中StaticGroup的我改性StaticTableGroup類公共類StaticTablesGroup { ... [XmlArray( 「StaticGroup的」)] [XmlArrayItem( 「StaticGroup的」 的typeof(StaticTablesGroup))] public List SubGroup {get;組; } }但是,子組不是反序列化的。我這次做錯了什麼 –
Vadim
@Vadim專家提示:使用'Serialize'並看看它產生了什麼;將它與你想要的相比 - 應該告訴你在哪裏看。很難讓我評論沒有一個完整的例子 –
謝謝你的提示。當序列化XML看起來和預期完全一樣時,但回讀不起作用。 – Vadim