簡體   English   中英

用派生對象反序列化數組

[英]Deserializing array with derived objects

我有一個看起來像這樣的XML文檔:聲音和音樂都是從音頻基類派生的類型。 它們存儲在列表聲音集合中。 我該如何反序列化? 因為執行簡單的(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>

謝謝!

您可以編寫一個自定義序列化程序,以從幾乎任何包含填充對象所需信息的格式中進行反序列化

通常你可以使用

[XmlInclude(typeof(ChildType))]

在您的基類上,然后可以將一個列表中的多個類型反序列化為基類型。 我認為這需要有一個

type="music"

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

您可能必須實現ISerializable才能獲得所需的內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM