2010-06-10 66 views

回答

2

是的,這是可能的。

序列化的XML/CSV/JSON數據必須包含標識符,以允許反序列化器知道要創建什麼類型的對象,因爲事先不能知道這些對象。爲了使反序列化器可以構造新的對象實例,通常使用FactoryMethod設計模式。

反序列化比序列化更困難。

1

不以任何簡單的方式。您必須編寫邏輯來分析數據,並確定其格式最接近的類型。

1

通常是的。但這取決於你使用的是哪個序列化。序列化數據必須包含有關序列化對象類型的元數據。例如,xml序列化(System.Xml.Serialization)不支持這種情況。

2

這取決於序列化。

BinarySerializer將類型信息嵌入到它的輸出流中,所以你描述的將會很好地工作。你得到一個物體,你甚至可以對它進行反射,然後將其轉換爲正確的類型。

XML序列化不能像那樣工作,這就是XmlSerializer在其構造函數中要求類型的原因。

在數據可能是數量有限的類型之一的情況下,您最好不過了,它們都是從基本類型繼承的。然後你可以給出基類型(使用已知的類型屬性進行修飾,讓它知道所有其他可能的類型),然後將數據反序列化爲標準基類型,然後檢查它。

CSV和JSON更加困難,因爲它們沒有很多序列化支持,它們被納入框架。

相關問題