2011-10-13 76 views
4

我想將一些類字段序列化爲一個組(子節點元素)。 例如:c#xml序列化子元素中的元素

[XmlRoot("person", Namespace = "", IsNullable = false)] 
public class Person 
{ 
    [XmlElement("male")] 
    public bool Male { get; set; } 

    [XmlElement("street")] 
    public string Street { get; set; } 

    [XmlElement("city")] 
    public string City { get; set; } 
} 

這將創建下列XML:

<person> 
<male>true</male> 
<street>Some street</street> 
<city>City</city> 
</person> 

但我想組(例如城市和街道成子元素),而不進行額外的子拿着這兩屬性。

<person> 
    <male>true</male> 
    <address> 
     <street>Some street</street> 
     <city>City</city> 
    </address> 
</person> 
+1

爲什麼?只是爲了混淆解串器? –

+0

我需要創建一個自定義的XML輸出,它完全不適合我的類結構。 XML永遠不會被反序列化,所以沒關係;) – Drejc

回答

1

您可以手動序列化,即寫入XDocument(甚至是XmlWriter)。

這可以讓您完全控制格式。使用串行器意味着你放棄(大部分)該控制。

+0

或者在Person類上實現IXmlSerializable。 – shambulator