【发布时间】:2020-12-08 07:54:36
【问题描述】:
我在网上找不到一个示例,该示例准确地解释了如何配置 XmlSerializer 以按照我想要的方式反序列化 XML。
我想将此 XML 反序列化为 Fruits 或至少是 List<Fruit>
<fruits>
<apple>{fruitstuff}</apple>
<orange>{fruitstuff}</orange>
<pear>{fruitstuff}</pear>
<fruits>
我想象一个看起来像这样的模型
class Fruits : List<Fruit> {}
class Fruit {
{fruitstuff}
}
class Apple : Fruit {}
class Orange : Fruit {}
class Pear : Fruit {}
我遇到的问题是 XmlSerlization 配置和 XML 属性的某种组合。当我提供 XmlSeralizer 时,可以读取 XML 而不会引发错误,但是它不能识别水果的集合。该集合将包含零个元素。
var seralizer = new XmlSerializer(typeof(Fruits), new XmlRootAttribute("Fruits"));
我对互联网的问题是,如何配置序列化程序以识别类似节点并将其反序列化为基本类型的集合?
我宁愿有一个精心配置的自定义序列化程序而不是 XmlAttributed 模型。我可能想使用除 XML 之外的其他格式的模型。我认为在我的模型中使用 xml 属性不如有针对性的序列化实现那么优雅。
【问题讨论】:
标签: c# xml attributes deserialization nodes