Десериализация XML - PullRequest
       4

Десериализация XML

1 голос
/ 23 сентября 2010

Я пытаюсь получить доступ к узлу <accessmode> в xml для определенного <action>.

<controller name="Job">
  <roles>
    <role>1</role>
    <role>3</role>
    <role>4</role>
  </roles>
  <actions>
    <action name="Index">
      <roles>
        <role>1</role>
        <role>4</role>
      </roles>
      <accessmode>1</accessmode>
    </action>
    <action name="Warning">
      <roles>
        <role>1</role>
        <role>3</role>
      </roles>
      <accessmode>3</accessmode>
    </action>
  </actions>
</controller>

Я попытался с помощью приведенного ниже кода.

    private string mode;
    [XmlArrayItem(ElementName = "action")]
    [XmlElement(ElementName = "accessmode")]
    public string Mode
    {
        get { return mode; }
        set { mode = value; }
    }

Поскольку <accessmode> является элементом под элементом массива, я пытался это сделать.Но я получаю значение как ноль.Любая помощь будет оценена.

1 Ответ

2 голосов
/ 23 сентября 2010

Использование атрибута XmlArrayItem неверно.Он используется в свойствах коллекции, чтобы указать, как элементы коллекции сериализуются.Вы должны удалить этот атрибут из свойства Mode и поместить это свойство в класс Action, который сопоставляется с элементом <action>.

...