2009-11-25 28 views
2

我反序列化XML到類:XML反序列化爲類擴展集合

我的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> 

我的階級結構:

[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; } 

    } 

我要讓類更優雅,
是否讓ToolBars類擴展List是一個好主意?
如果是,我該如何修改xml文件和xml屬性?

+0

你是什麼意思_更優雅_? – 2009-11-25 15:55:00

+0

我不喜歡toolBar類只有一個屬性的工具欄集合。也許最好延長收藏? – samuel 2009-11-25 16:26:27

回答

1

它有什麼害處?

就我個人而言,我會保持原樣;它做它所說的,並且很容易理解。對我來說,這是優雅的。您也可以稍後在頂層添加屬性(如果它是本身列表,則不能這樣做)。