Возникла проблема, связанная с десериализацией XML - PullRequest
0 голосов
/ 02 мая 2011

предположим, у меня есть данные 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 Ответ

4 голосов
/ 02 мая 2011

Смена имени в порядке;вам просто нужны правильные атрибуты.Вы не показываете XML, но похоже, что вам просто нужно

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

Если тип находится вне вашего контроля, вы можете использовать XmlAttributeOverrides для переобучения XmlSerializer - но если вы делаетечто вы должны кэшировать и повторно использовать экземпляр сериализатора (или вы потеряете память).

...