反序列化XML

时间:2010-09-23 09:59:35

标签: c# xml-deserialization

我正在尝试访问xml中针对特定<accessmode>的节点<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>是我尝试过的arrayitem下的元素。 但是,我得到的值为null。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

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

相关问题