用派生对象反序列化数组

本文关键字:数组 反序列化 对象 派生 | 更新日期: 2023-09-27 18:06:04

我有一个XML文档,看起来像这样:声音和音乐都是从音频基类派生的类型。它们存储在列表声音集合中。我该怎么反序列化呢?因为做简单的(List)x。反序列化将生成一个基类型列表。

<sounds>
 <sound name="SFX_PunchObject">
  <file name="SFX_PunchObject.ogg" size="5414"/>
 </sound>
 <music name="HWAS_Cutscene1">
  <file name="HWAS_Cutscene1.m4a" size="135049"/>
 </music>
</sounds>

谢谢!

用派生对象反序列化数组

您可以编写一个自定义序列化器来从几乎任何包含填充对象所需信息的格式进行反序列化。

通常你可以使用

[XmlInclude(typeof(ChildType))]

,然后可以将一个列表中的多个类型反序列化为基类型。我认为这需要一个

type="music"

属性,而不是有不同的根元素。

你可能需要实现isserializable来得到你需要的。