错误:c#成员名称不能与其封闭类型相同

时间:2014-05-13 04:45:16

标签: xmlserializer serializable

这是XML

<TEST ID=1 TITLE="HELLO" TEST=false/>

此文件是XmlSerializer

[Serializable]
[XxmlRoot(ElementName = "TEST"]
public class TEST
{
    [XmlAttribute(AttributeName = "ID"]
    public int ID {get;set;}
    [XmlAttribute(AttributeName = "TITLE"]
    public string TITLE {get;set;}
    [XmlAttribute(AttributeName = "TEST"]
    public bool TEST {get;set;}
}

运行此项目

错误消息  “'TEST'成员名称不能与其封闭类型相同”

我明白了。但我不能重命名这个AttributeName和RootName, XML文件永远不会改变,不是我的文件。如何更改此可序列化文件?

1 个答案:

答案 0 :(得分:1)

您可以重命名成员变量,同时保持实际的XML标记不变。您使用的AttributeName启用此功能。你实际上可以这样做:

[Serializable]
[XmlRoot(ElementName = "TEST"]
public class TestTag
{
    [XmlAttribute(AttributeName = "ID"]
    public int IdAttribute { get; set; }

    [XmlAttribute(AttributeName = "TITLE"]
    public string TitleAttribute { get; set; }

    [XmlAttribute(AttributeName = "TEST"]
    public bool TestAttribute { get; set; }
}

或类似的东西。您的XML文件将保持不变!