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

本文关键字:反序列化 表达式 XML 何定义 定义 | 更新日期: 2023-09-27 17:56:44

我的序列化/反序列化工作正常,但我想稍微更改一下 xml 文件以使其更具人类可读性。我现在拥有的是:

<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;

我用谷歌搜索了一个小时并尝试了很多,但没有任何效果。

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

XmlElement替换为 XmlAttribute

[Serializable]
public class Option
{
    [XmlAttribute("key")]
    public EOptions Key;
    [XmlAttribute("regex")]
    public string RegEx;
    public override string ToString()
    {
        return Key.ToString();
    }
}

您使用XmlAttributeAttribute类而不是XmlElementAttribute

[Serializable]
public class Option
{
    [XmlAttribute("key")]
    public EOptions Key;
    [XmlAttribute("regex")]
    public string RegEx;
    public override string ToString()
    {
        return Key.ToString();
    }
}