属性C#上的一些XmlElement属性

时间:2012-03-27 13:55:19

标签: c# xml

我可以在类的属性上有多个XmlElement吗? 例如:

[XmlElement("name")]
[XmlElement("clientName")]
public string Name { .. }

我需要这个用于反序列化。假设XML文件中的Name元素将命名为“name”或“clientName”。我想实现某种灵活性(列出对应于Name属性的xml元素的可能名称。

主要思想是我必须从另一个程序导入XML文件,我必须制作某种“导入模板”。

2 个答案:

答案 0 :(得分:4)

答案实际上是肯定的,但仅限于某些条件下。如果您想为不同类型使用不同的元素名称,则可以执行此操作。至于没有指定类型,documentation什么也没说。

[XmlElement(typeof(int),
 ElementName = "ObjectNumber"),
XmlElement(typeof(string),
 ElementName = "ObjectString")]
public ArrayList ExtraInfo;

答案 1 :(得分:4)

猜测您需要使用两个不同的元素名称导入具有相同值的XML,您可以这样做:

  string _Name;

  [XmlElement("name")]
  public string Name {
    get {
      return _Name;
    }
    set {
      _Name = value;
    }
  }

  [XmlElement("clientName")]
  public string ClientName {
    get {
      return _Name;
    }
    set {
      _Name = value;
    }
  }