2012-10-18 64 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

谢谢,我为它编写客户序列化行为。有用。 –

相关问题