[英]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.