一个列表中多个对象类型的XmlSerialization
我有一个对象有一个抽象的’aninamls’列表。 即
var animals = new Animals { new Bird{ TailFeatherColour = "Blue" }, new Cat{ Colour = "Brown" } };
使用xmlserializer,是否可以将上面的序列化为以下xml,
Blue Brown
目前,我只能得到以下内容:
Blue Brown
当列表是另一个类中的字段时,可以使用XmlElementAttribute
和XmlArrayItemAttribute
属性执行此操作(不同之处在于前者不会在列表元素周围放置容器元素,而后者会这样做)。
我不相信你只需要一个列表即可实现你想要的东西,即当被序列化的实际对象是一个列表时(尽管我可能在这里错了)但是你可以通过在类中嵌套一个列表来伪造它,例如
[XmlRoot("Animals")] [XmlType("Animals")] public class AnimalsWrapper { [XmlElement(typeof(Bird), ElementName = "Bird")] [XmlElement(typeof(Cat), ElementName = "Cat")] public List Animals; }
这是一个笨拙的黑客,但会序列化到你想要的。
- MvvmLight EventToCommand和WPFToolkit DataGrid双击
- 在Unity中,如何将值从一个脚本传递到另一个脚本?
- 使用Windows脚本宿主
- 编写类似于程序集缓存查看器的Windows Shell扩展
- Restful service returns – 检查System.Byte 类型的对象的start元素时出错。 遇到意外的角色’ÿ’
- 代理上的可选参数无法正常工作
- delegate.Invoke是如何工作的?
- 在循环中执行array.length或list.count是否代价高昂
- 如何将System.Drawing.font转换为System.Windows.Media.Fonts或TypeFace?