C#Serialization,将属性的值作为元素名称

时间:2012-10-18 07:02:22

标签: c# attributes xml-serialization

我正在将一个C#类序列化为XML。课程如下所示:

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 个答案:

答案 0 :(得分:0)

如果默认的Xml序列化行为不符合您的方案,则应使用Custom Serialization Behavior