Xml数组反序列化为c#对象,不需要顶级数组元素
本文关键字:不需要 数组元素 对象 数组 反序列化 Xml | 更新日期: 2023-09-27 18:18:06
我有以下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; }
}
我怎么能做到这一点只使用属性(如果可能的话?),但没有添加顶级
在提出问题之前,我已经尝试了XmlArrayAttribute和XmlArraItemAttribute与namedProperty的所有可能的组合,并且要使用的属性只是XmlElement。所以我是这样处理的:
只是在Config类的Sections属性之上添加了[XmlElement(ElementName="Section")]。更新如下:
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; }
}