2012-07-08 25 views
1

代表我要產生以下XML輸出如何使用XML序列化

<account> 
    <id>123456</id> 
    <roles> 
     <role master-name="I80"> 
      <id>88</id> 
      <unit>Implementer</unit> 
     </role> 
     <role master-name="S20"> 
      <id>21</id> 
      <unit>Support</unit> 
     </role> 
    </roles> 
</account> 

所以我創建下面的類自定義對象的列表

[XmlRoot("account")] 
public class Account 
{ 
    [XmlElement("id")] 
    public int ID { get; set; } 
    [XmlElement("roles")] 
    public RolesList Roles { get; set; } 
} 

public class RolesList 
{ 
    [XmlElement("role")] 
    public List<Role> roles { get; set; } 
} 

public class Role 
{ 
    [XmlAttribute("master-name")] 
    public string MasterName { get; set; } 
    [XmlElement("id")] 
    public int ID { get; set; } 
    [XmlElement("unit")] 
    public string Unit { get; set; } 
} 

我的問題是,是否有辦法代表這更好嗎?我想避免創建RolesList類。

回答

2

你應該申報這樣的角色列表中Account

[XmlArray("roles")] 
[XmlArrayItem("role")] 
public List<Role> Roles { get; set; } 
+0

我會盡力的,但我認爲XArrayItem將生產要素而不是(小寫) – 2012-07-08 16:58:22

+0

@KishoreMasand:你嘗試過它出來嗎?我測試過了,它似乎正常工作。 – 2012-07-08 18:09:49

+0

它按照你所說的方式工作。謝謝! – 2012-07-09 04:27:00