如何定义C#类以反序列化特定的XML表达式

时间:2013-01-31 13:05:57

标签: c# xml serialization .net-4.0

我的序列化/反序列化工作正常但我想将xml-File更改为littel位以使其更具人性化。 我现在拥有的是:

<Options>
  <Option>
    <Key>Backup</Key>
    <RegEx>.exe%</RegEx>
  </Option>
</Options>

我想把它写成:

<Options>
  <Option key="Backup" regex=".exe%" />
</Options>


[Serializable]
public class Option
{
    //[XmlElement("key")]
    public EOptions Key;
    //[XmlElement("regex")]
    public string RegEx;

    public override string ToString()
    {
        return Key.ToString();
    }
}

...
public List<Option> Options;

我在一小时后谷歌并尝试了很多,但没有任何作用。

2 个答案:

答案 0 :(得分:2)

XmlElement替换为XmlAttribute

[Serializable]
public class Option
{
    [XmlAttribute("key")]
    public EOptions Key;
    [XmlAttribute("regex")]
    public string RegEx;

    public override string ToString()
    {
        return Key.ToString();
    }
}

答案 1 :(得分:0)

您使用XmlAttributeAttribute课程而不是XmlElementAttribute

[Serializable]
public class Option
{
    [XmlAttribute("key")]
    public EOptions Key;
    [XmlAttribute("regex")]
    public string RegEx;

    public override string ToString()
    {
        return Key.ToString();
    }
}