我正在使用DataContractSerializer存儲我自己的類的對象以保存用戶設置。 UserSettings類使用不同數據類型的其他對象。我將所有這些類型添加到DataContractSerializer的KnownTypes參數中,這很好。 但我有問題與向前兼容性。如果我使用新的數據類型在UserSerrings類中引入新屬性,它也適用於我的程序的新版本。但是舊版本引發異常,說XML文件不能被反序列化,因爲數據類型不在KnownTypes數組中。 我只是想忽略這些類型,因爲它們在舊版本中並未使用。 我該如何做到這一點,以便舊版本可以讀取和寫入xml文件,忽略那些未知的屬性/類型?DataContractSerializer向前兼容性問題
1
A
回答
2
這正是IExtensibleDataObject(擴展數據)設計的場景!這個想法是,如果數據合同的v1版本使用擴展數據接口進行修飾,它將自動忽略,存儲和往返未來數據合同修訂版(包括未來未知的類型)中的數據,而沒有任何問題。
我推薦以下資源詳細瞭解此功能,並學習如何實現它爲您的具體情況:
+0
喜歡它。謝謝! –
相關問題
- 1. 有關csc.exe的向後/向前兼容性的問題
- 2. Android向前兼容性
- 3. Java和「朝前」兼容性問題
- 4. WCF服務 - 向後兼容性問題
- 5. StructureMap 2.6.1的向後兼容性問題
- 6. box2d raycast向後兼容性問題
- 7. WCF向後兼容性問題
- 8. iText的兼容性問題
- 9. Crystal Reports兼容性問題
- 10. XCode:iOS兼容性問題
- 11. Google Play兼容性問題
- 12. PHP兼容性問題
- 13. javascript兼容性問題
- 14. Internate Explorer兼容性問題
- 15. CSS3兼容性問題
- 16. iPhone 4.0兼容性問題
- 17. Windows 7兼容性問題
- 18. 兼容性問題是IE10
- 19. Safari CSS兼容性問題
- 20. 黑莓兼容性問題
- 21. ie 8兼容性問題
- 22. Javascript/jquery兼容性問題
- 23. Internet Explorer兼容性問題
- 24. IE7的兼容性問題
- 25. CoreBluetooth兼容性問題
- 26. 平臺兼容性問題
- 27. 黑莓兼容性問題
- 28. Php兼容性問題
- 29. IE兼容性問題
- 30. 兼容性問題iAd Banner?
我不知道一個DCS修復,但我可能有一個解決方案如果你不綁定到XML ... –
我不需要xml。你會建議什麼? – Steve
我維護protobuf-net,一個替代串行器;意想不到的子類型可以默默地被忽略,同時仍然保留你期望的層次結構中的任何值 –