2016-09-14 34 views
0

林與<元素行爲=「替換」> XML元素試圖重新創建XML它的結果應該是這個樣子:創建在C#

<names> 
    <legalName behavior="replace"> 
     <firstName>Value</firstName> 
     <surName>Value</surName> 
     <fullName>Value</fullName> 
     <effDate>Value</effDate> 
    </legalName> 
    </names> 

我有一個看起來像這樣的屬性列表:

public class Names 
{ 

    [XmlElement("legalName")] 
    public LegalName LegalName { get; set; } 
} 

public class LegalName 
{ 
    [XmlElement("firstName")] 
    public string FirstName { get; set; } 

    [XmlElement("surName")] 
    public string SurName { get; set; } 

    [XmlElement("fullName")] 
    public string FullName { get; set; } 

    [XmlElement("effDate")] 
    public string EffDate { get; set; } 
} 

和邏輯:

foreach (var people in model.Peoples) 
     { 
      exportResult.Persons.Person.Add(new Person 
      { 

       Names = new Names() 
       { 
        LegalName = new LegalName() 
        { 
         FirstName = people.LegalNameFirstName, 
         SurName = people.LegalNameSurName, 
         FullName = people.LegalNameFullName, 
         EffDate = people.LegalNameEffectiveDate 
        } 
       } 
      } 
     } 

    XmlSerializer xsSubmit = new XmlSerializer(typeof(ExportResult)); 
     StringWriter sww = new Utf8StringWrite(); 
     var xml = string.Empty; // Your XML 
     using (XmlWriter writer = XmlWriter.Create(sww, new XmlWriterSettings {Encoding = Encoding.UTF8})) 
     { 
      xsSubmit.Serialize(writer, exportResult); 
      xml = sww.ToString(); 
     } 
     return xml; 

我想知道如何創建這個元素:

<legalName behavior="replace"> 

我應該更改屬性類中的XmlElement嗎?像這樣的:

public class Names 
{ 

[XmlElement("legalName"), XmlAttribute("behavior =\"replace\"")] 
public LegalName LegalName { get; set; } 
} 

我如何使行爲=「替換」的legalName元素?

回答

1

要將屬性添加爲屬性,您需要將XmlAttribute屬性添加到其父級內的屬性(類似於添加子元素)。所以在你的情況下:

public class Names 
{ 
    [XmlElement("legalName")] 
    public LegalName LegalName { get; set; } 
} 

public class LegalName 
{ 
    [XmlElement("firstName")] 
    public string FirstName { get; set; } 

    [XmlElement("surName")] 
    public string SurName { get; set; } 

    [XmlElement("fullName")] 
    public string FullName { get; set; } 

    [XmlElement("effDate")] 
    public string EffDate { get; set; } 

    [XmlAttribute("behavior")] 
    public string Behavior { get; set; } 
}