我有一个XML文档,如下所示: 声音和音乐都是音频基类的派生类型。它们存储在List声音集合中。我怎样才能反序化呢?因为做简单(List)x.Deserialize会产生一个基类型列表。
<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>
谢谢!
答案 0 :(得分:0)
您可以编写一个custom serializer来反序列化几乎任何包含填充对象所需信息的格式。
答案 1 :(得分:0)
通常你可以使用
[XmlInclude(typeof(ChildType))]
在基类上,然后可以将一个列表中的多个类型反序列化为基类型。我认为需要有一个
type="music"
属性,而不是具有不同的根元素。
您可能必须实现ISerializable才能获得所需内容。