2010-09-23 15 views
1

J'essaye d'accéder au noeud <accessmode> dans le xml pour un <action> spécifique.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> 

J'ai essayé avec le code ci-dessous.

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

Depuis le <accessmode> est un élément sous la arrayitem de I essayé ainsi. Mais, je reçois la valeur comme nulle. Toute aide serait appréciée.

Répondre

2

Votre utilisation de l'attribut XmlArrayItem est incorrecte. Il est utilisé sur les propriétés de collection pour spécifier la façon dont les éléments de la collection sont sérialisés. Vous devez supprimer cet attribut de la propriété Mode et placer cette propriété dans une classe Action qui correspond à l'élément <action>.