2012-10-18 58 views
1

我正在將一個C#類序列化爲XML。該類如下所示:C#序列化,把屬性的值作爲元素名稱

public class EventProperty 
{ 
    private string propertyNameField; 
    private string propertyValueField; 

    public string PropertyName 
    { 
     get { return this.propertyNameField; } 
     set { this.propertyNameField = value; } 
    } 

    [System.Xml.Serialization.XmlTextAttribute()]   
    public string PropertyValue 
    { 
     get { return this.propertyValueField; } 
     set { this.propertyValueField = value; } 
    } 
}//end class 

測試代碼是:

propertySet = new List<EventProperty>(); 
propertySet.Add(new EventProperty() { PropertyName = "ChenYi", PropertyValue = "21" }); 
propertySet.Add(new EventProperty() { PropertyName = "ChenJida", PropertyValue = "232" }); 
propertySet.Add(new EventProperty() { PropertyName = "XieChao", PropertyValue = "999" }); 

結果是這樣的:

<property> 
    <PropertyName>ChenYi</PropertyName>21</property> 
<property> 
    <PropertyName>ChenJida</PropertyName>232</property> 
<property> 
    <PropertyName>XieChao</PropertyName>999</property> 

,但我期待着什麼象下面這樣:

<property> 
    <ChenYi>21</ChenYi></property> 
<property> 
    <ChenJida>232</ChenJida></property> 
<property> 
    <XieChao>999</XieChao></property> 

任何人都知道哪個xmlattribute應該在這裏使用?或者有另一種方式?

+1

mmm,爲什麼你需要構建這樣的XML結構?爲什麼不爲你的結構使用正確命名的元素或屬性呢?即陳毅 melaos

+2

您所期望的XML無效 - 元素名稱不能包含空格。 –

+0

你想要的沒有任何意義......沒有任何東西可以解析它,這就是xml爲通用數據傳輸所做的構建...... – sasjaq

回答

0

如果默認的Xml序列化行爲未能滿足您的方案,則應使用Custom Serialization Behavior

+0

謝謝,我爲它編寫客戶序列化行爲。有用。 –

相關問題