c# – 如何使用XmlElementAttribute for List?
发布时间:2020-12-15 08:10:25 所属栏目:百科 来源:网络整理
导读:我有一个这样的课: public class Level{ [XmlAttribute] public string Guid { get; set; }}public class LevelList : ListLevel{}public class Test{ public LevelList CalLevelList { get; set; }} 使用XmlSerializer,我得到这样的输出: CalLevelList Le
我有一个这样的课:
public class Level { [XmlAttribute] public string Guid { get; set; } } public class LevelList : List<Level> { } public class Test { public LevelList CalLevelList { get; set; } } 使用XmlSerializer,我得到这样的输出: <CalLevelList> <Level Guid="0de98dfb-ce06-433f-aeae-786b6d920aa6"/> <Level Guid="0de98dfb-ce06-433f-aeae-786b6d920aa7"/> </CalLevelList> 这在技术上是正确的.但是,在不更改类名的情况下,我想使输出看起来像这样: <Levels> <L Guid="0de98dfb-ce06-433f-aeae-786b6d920aa6"/> <L Guid="0de98dfb-ce06-433f-aeae-786b6d920aa7"/> </Levels> 我知道这可以通过属性完成,但无法弄清楚如何.当我向Test类添加一个属性时,如下所示: public class Test { [XmlElement("Levels")] public LevelList CalLevelList { get; set; } } 输出非常令人惊讶: <Levels Guid="0de98dfb-ce06-433f-aeae-786b6d920aa6"/> <Levels Guid="0de98dfb-ce06-433f-aeae-786b6d920aa7"/> 这意味着,我丢失了父节点.我指定的元素名称成为节点名称.为什么这个?如何让它工作? 解决方法
试试这个:
public class Test { [XmlArray("Levels")] [XmlArrayItem("L")] public LevelList CalLevelList { get; set; } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读