Xml数组反序列化到没有顶级arrayElement的C#对象

时间:2014-08-15 17:16:27

标签: c# xml xml-attribute

我有以下Xml:

<Head>
<Name>someName</Name>
<Config>
  <Section name='One'/>  
  <Section name='Two'/>
</Config>
</Head>

我希望它映射以下对象结构:

public class Head{
   public String Name {get;set;}

   public Config Config {get;set;}       

}

public class Config
{       
    public Section[] Sections { get; set; }
}

public class Section
{
    [XmlAttribute(AttributeName="name")]
    public String Name { get; set; }

}

我怎样才能使用属性(如果可能?)但没有添加顶级&lt;部分&gt;以上&lt;部分&gt;元素,并保持类结构。 我尝试过使用XmlArrayItem,但是我无法获得节元素。

1 个答案:

答案 0 :(得分:1)

在提出问题之前,我已经尝试了 XmlArrayAttribute XmlArraItemAttribute 以及namedProperty的所有可能组合,并且要使用的属性只是 的XmlElement 即可。所以我像这样管理它:

刚刚在配置 Sections 属性上添加 [XmlElement(ElementName =&#34; Section&#34;)] >上课。更新如下:

  public class Head{
     public String Name {get;set;}

     public Config Config {get;set;}       

  }

  public class Config
  {       
      [XmlElement(ElementName="Section")]
      public Section[] Sections { get; set; }
  }

  public class Section
  {
      [XmlAttribute(AttributeName="name")]
      public String Name { get; set; }

  }