发生xml反序列化相关问题

时间:2011-05-02 17:54:07

标签: c# xml-serialization

假设我有xml数据存储在字符串变量中。所以当我试图将xml反序列化到我的类时,我的属性名称会出错。

  [XmlAttribute("Name")]
  public string CompanyName
  {
    get
    {
      return __CompanyName;
    }
    set
    {
      if (value != null)
        __CompanyName = value;
      else
        __CompanyName = "";
    }
  }

实际上我收到错误,因为在我的xml中有Name标签,但在我的代码中,属性名称是CompanyName。这就是我收到错误的原因。有没有办法在我的属性中映射属性作为结果名称将与CompanyName映射,并且在反序列化期间不会出现问题。请帮忙。 [XmlAttribute(“Name”)] ...它应该是xmlelement而不是XmlAttribute。需要帮助。

1 个答案:

答案 0 :(得分:4)

更改名称很好;你只需要正确的属性。您没有显示XML,但看起来您只需要

[XmlElement("Name")]
public string CompanyName {...etc...}

如果该类型不在您的控制范围内,您可以使用XmlAttributeOverrides重新培训XmlSerializer - 但如果您这样做, 必须 缓存并重新使用序列化程序实例(否则会泄漏内存)。