【发布时间】:2014-04-15 15:14:42
【问题描述】:
我有一个需要序列化为 C# 对象的 XML 文件。通常,XML 标签指示文件被序列化到哪个对象中。但是,我必须处理的文件之一使用 XML 标记中称为 type 的属性来指定对象。例如,看下面的代码。
<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 将序列化为书籍对象等?
在此先感谢
【问题讨论】:
-
在这里为 book/magazine/cd 使用单独的对象字节而不是仅使用具有 Type 属性的 Item 对象是否有意义?您的实际文档是否有更多字段或其他内容?
-
当然可以手动编写一个 XML 序列化器来读取属性并执行正确的序列化。然而,这是很多工作。实际上,编写一个 XSLT 将 XML 转换为一种将每个项目包装成适当类型的表单实际上可能更容易(只是有点开玩笑)。
标签: c# xml serialization