基于属性在C#中有条件地序列化XML

时间:2014-04-15 15:14:43

标签: c# xml serialization

我有一个XML文件,我需要将其序列化为C#对象。通常,XML标记指示文件序列化的对象。但是,我必须处理的其中一个文件使用名为type的XML标记中的属性来指定对象。例如,请参阅下面的代码。

<library>
  <item type="book">Great Expectations</item>
  <item type="magazine">National Geographic</item>
  <item type="cd">Blue Valentines</item>
</library>

是否可以使用XML序列化属性,以便每个项目将序列化为一个对象,其类型由XML中的type属性指定,即Great Expectations将序列化为书籍对象等?

非常感谢提前

1 个答案:

答案 0 :(得分:0)

查看另一个StackOverflow问题:XML Deserialization - convert attribute value into class automatically (.net)

单独的属性似乎不支持将数组项反序列化为特定类型。您需要实现自定义IXmlSerializable。