繁体   English   中英

XML序列化列表<Class>

[英]XML Serializing a List<Class>

我在反序列化XML时遇到问题,我不太清楚。 主要是,我试图避免在类位于列表内但未成功时嵌套类。 例如:

[XmlRoot]
[Serializable]
public class Foo
{
    [XmlElement("Bar")]
    public BarElement Bar = new BarElement();

    public class BarElement
    {
        [XmlElement("MoreBars")]
        public List<MoreElement> MoreBars = new List<MoreElement>();
    }

    [XmlRoot("More")]
    [Serializable]
    public class MoreElement
    {
        [XmlAttribute("Attribute")]
        public string Attribute { get; set; }

        [XmlText]
        public string Value { get; set; }
    }
}

对应于:

<Foo>
    <Bar>
        <MoreBars>
            <More Attribute=""></More>
            <More Attribute=""></More>
            <More Attribute=""></More>
            <More Attribute=""></More>
        </MoreBars>
    </Bar>
</Foo>

这几乎可以工作...但效果不佳。 通过将XmlRoot添加到MoreElement,我试图避免必须创建一个仅包含MoreElement列表的名为“ MoreBarsElement”的新类的麻烦,因为访问“ Foo.Bar.MoreBars.Value”已经很麻烦了。 。 这可能吗? 如果是这样,我该怎么办?

回答我自己的问题-看起来我需要

[XmlArray("MoreBars"), XmlArrayItem(typeof(MoreElement), ElementName = "More")]

关于数组项的声明。 现在就可以了,万岁!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM