I désérialiser XML en classes:XML deserialize dans des classes qui étend la collecte
Mon fichier XML:
<?xml version="1.0" encoding="utf-8" ?>
<ToolBarConfiguration>
<ToolBars>
<ToolBarSet id="1" buttonsCounter="4" width="252">
<ToolBarItems>
<ToolBarItem id="1" Command="Command11" Icon="pic11" Icon2="pic11" Enabled="true" Visible="true" Type="Button"/>
<ToolBarItem id="2" Command="Command12" Icon="pic12" Enabled="true" Visible="true" Type="Button"/>
<ToolBarItem id="3" Command="Command13" Icon="pic13" Enabled="true" Visible="true" Type="Button"/>
<ToolBarItem id="4" Command="Command14" Icon="pic14" Enabled="false" Visible="true" Type="Button"/>
</ToolBarItems>
</ToolBarSet>
<ToolBarSet id="2" buttonsCounter="2" width="170">
<ToolBarItems>
<ToolBarItem id="1" Command="Command21" Icon="pic11" Enabled="true" Visible="true" Type="ButtonWithSelector"/>
<ToolBarItem id="2" Command="Command22" Icon="pic22" Enabled="true" Visible="true" Type="Button"/>
</ToolBarItems>
</ToolBarSet>
</ToolBars>
</ToolBarConfiguration>
Ma structure de classe:
[XmlRoot("ToolBarConfiguration")]
public class ToolBars
{
[XmlArray("ToolBars")]
[XmlArrayItem("ToolBarSet", typeof(Toolbar))]
public List<Toolbar> Toolbars
{
get { return toolbars; }
set { toolbars = value; }
}
List<Toolbar> toolbars = new List<Toolbar>();
}
public class Toolbar
{
[XmlAttribute("id")]
public int Id { get; set; }
[XmlAttribute("buttonsCounter")]
public int ButtonsCounter { get; set; }
[XmlAttribute("width")]
public int Width { get; set; }
[XmlArray("ToolBarItems")]
[XmlArrayItem("ToolBarItem", typeof(ToolbarItem))]
public List<ToolbarItem> ToolbarItems
{
get { return toolbarItems; }
set { toolbarItems = value; }
}
List<ToolbarItem> toolbarItems = new List<ToolbarItem>();
}
public class ToolbarItem
{
[XmlAttribute("Command")]
public string Command { get; set; }
[XmlAttribute("id")]
public int Id { get; set; }
[XmlAttribute("Icon")]
public string Icon { get; set; }
[XmlAttribute("Icon2")]
public string Icon2 { get; set; }
[XmlAttribute("Visible")]
public bool Visible { get; set; }
[XmlAttribute("Enabled")]
public bool Enabled { get; set; }
[XmlAttribute("Type")]
public ToolbarItemType ItemType { get; set; }
}
Je veux rendre les classes plus élégant,
est-ce une bonne idée de rendre la classe ToolBars étendre la liste?
Si oui, comment dois-je modifier les attributs xml et xml?
que voulez-vous dire par _more elegant_? –
Je n'aime pas la classe toolBar avec une seule propriété de collection de barre d'outils. peut-être vaut-il mieux étendre la collection? – samuel