Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何定义C#类来反序列化特定的XML表达式_C#_Xml_Serialization_.net 4.0 - Fatal编程技术网

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

如何定义C#类来反序列化特定的XML表达式,c#,xml,serialization,.net-4.0,C#,Xml,Serialization,.net 4.0,我的序列化/反序列化工作得很好,但我想稍微修改一下xml文件,使其更具可读性。 我现在得到的是: <Options> <Option> <Key>Backup</Key> <RegEx>.exe%</RegEx> </Option> </Options> 备份 .exe% 我想这样写: <Options> <Option key="Backup" r

我的序列化/反序列化工作得很好,但我想稍微修改一下xml文件,使其更具可读性。 我现在得到的是:

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

备份
.exe%
我想这样写:

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

[可序列化]
公共类选项
{
//[XmlElement(“键”)]
公钥;
//[XmlElement(“regex”)]
公共字符串正则表达式;
公共重写字符串ToString()
{
return Key.ToString();
}
}
...
公开列表选项;

我用谷歌搜索了一个小时,试了很多次,但都没用。

xmldattribute
替换你的
xmlement

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

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

    public override string ToString()
    {
        return Key.ToString();
    }
}
您使用类而不是
xmlementattribute

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

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

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

XmlAttributeAttribute如何?我很难相信你在搜索的时候没有发现。出于好奇,您尝试了哪些搜索短语?XmlAttribute是我尝试的第一个。但我不知道为什么它不起作用。也许是打字错误。还有谷歌:嗯,如果你不知道事物的名称,那么谷歌就很复杂;)我尝试了“xml键值”等等。然后我尝试了以下每个属性:顺便说一句:你们都让我的日子过得很愉快。它可能不起作用,因为你们没有导入正确的名称空间。可能与常规的XmlAttribute类混淆了。只是想再考虑一次。=)+比我快几分钟。我真的应该停止评论,只是给出答案