2010-09-23 4 views
1

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

<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> является элементом под arrayitem из я попробовал так. Но, я получаю значение как null. Любая помощь будет оценена.

ответ

2

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