2014-09-24 68 views
0

我有这样的模式:如何序列化到“收藏与属性”使用XML序列

[XmlArray(ElementName = "Listing")] 
[XmlArrayItem(ElementName = "Classification")] 
public List<Classification> classifications { get; set; } 

[XmlRoot("Listing")] 
public class Classification 
{ 
    [XmlAttribute("Name")] 
    public string name { get; set; } 

    [XmlText] 
    public string Value { get; set; } 
} 

这给了我这样的:

<Listing> 
<Classification Name="Location">AsiaPacific</Classification> 
</Listing> 

我应该如何修改我的类来获得这样的:

<Listing reference = "MyReference"> 
<Classification Name="Location">AsiaPacific</Classification> 
</Listing> 

回答

1

数(数百个)试错后,我得到了我需要通过修改模型的结果:

[XmlElement(ElementName = "Listing")] 
public ClassificationWrapper classificationWrapper { get; set; } 

public class ClassificationWrapper 
{ 
    [XmlAttribute("reference")] 
     public string ref= "MyReference"; 

     [XmlElement("Classification", typeof(Classification))] 
     public List<Classification> classifications { get; set; } 

public ClassificationWrapper() { this.classifications = new List<Classification>(); } 
} 
public class Classification 
{ 
     [XmlAttribute("Name")] 
     public string name { get; set; } 

     [XmlText] 
     public string Value { get; set; } 
}