2010-09-23 164 views
1

我正在尝试访问xml中的节点<accessmode>以获取特定的<action>反序列化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下一个元素。 但是,我得到的值为空。任何帮助将不胜感激。

回答

2

您对XmlArrayItem属性的使用不正确。它用于集合属性以指定集合的​​项目如何序列化。您应该从Mode属性中删除该属性,并将该属性放置在映射到<action>元素的Action类中。