什麼是序列化自定義類的更好方法:在類上使用XMLSerializer或BinarryFormatter和[Serializable]屬性?關於序列化的問題
Q
關於序列化的問題
0
A
回答
2
如果不知道如何使用生成的文件以及它的生命週期,就無法回答這個問題。
這個決定是基於這樣一個事實:「升級」二進制格式比較困難。如果你的對象模型改變了,它將不會正確地反序列化。但是如果你已經實現了一個自定義的XML序列化/反序列化,那麼你可以適當地處理這些「新」情況,並且生活會很好。
因此,請更多地瞭解您將如何使用它,您與誰共享信息以及模型可能發生的變化。
FWIW,我有時在給定的項目中使用這兩種類型的序列化。
1
這真的取決於你如何使用序列化的類。如果您想將其傳遞給其他程序或想要輕鬆調試它,請使用XML(但請注意,XMLSerializer可能會生成不符合規範的XML輸出,如多個根元素)。
在其他所有情況下,您可以使用二進制格式化程序。但是請注意,如果稍後更改類,則XML更適合 - 您可以使用XMLIgnore
等來保持XML格式不變。
0
有時也會根據序列化輸出的用途爲您做出決定 - 雖然您可以公開一個WebService以獲取二進制數組,這是一個二進制序列化項,但您無法使用Web服務很容易從除.Net之外的任何東西(並且最終客戶端可能需要對該類型的引用)。
使用XML意味着服務可以在最終客戶
相關問題
- 1. 關於JSON和序列化的問題
- 2. 安全問題關於序列化C#
- 3. 關於外部化和序列化問題
- 4. XmlIgnore的XML序列化相關問題
- 5. 關於物化的問題
- 6. 關於Oracle序列的問題
- 7. 關於序列的postgresql nextval問題
- 8. 關於postgresql序列的問題
- 9. 關於結果集對象的可序列化問題
- 10. 關於.NET遠程處理和序列化的問題
- 11. 關於使用Gson反序列化Json的問題
- 12. XML序列化相關問題和c#
- 13. LINQ2SQL關係和WCF序列化問題
- 14. 關於初始化問題
- 15. 問題關於C#優化
- 16. 序列化問題
- 17. 序列化問題
- 18. 序列化問題
- 19. 序列化問題
- 20. 序列化問題
- 21. 序列化問題
- 22. 序列化問題
- 23. 序列化問題
- 24. 序列化問題
- 25. 序列化問題
- 26. 關於排序的問題
- 27. 關於程序的問題
- 28. 關於序言的問題
- 29. Silverlight序列化/反序列化問題
- 30. file_get_contents序列化/反序列化問題
所以我用一個XmlSerializer的,並試圖序列包含字典的類上暴露給任何客戶端無論平臺/環境,但它提出一個錯誤:「無法序列化一個成員,因爲它實現了IDictionary」。 你可以請情況幫忙嗎? – Mike 2010-03-16 11:00:33
@Mike:你可以幫助自己。該錯誤消息表示它無法序列化該接口。所以你需要自己實現它(通過覆蓋相應的函數)。 – 2010-03-16 11:39:02
非常感謝您的建議 – Mike 2010-03-16 12:20:39