共用方式為


版本控制

.NET Framework 針對版本控制和並存執行提供支援,如果類別的介面保持相同,所有類別都可以在各版本上運作。因為序列化處理的是成員變數而非介面,在對將跨版本序列化的類別加入或移除成員變數時要非常小心。對於沒有實作 ISerializable 介面的類別來說更是如此。目前版本狀態的任何變更 (例如成員變數的加入、變數型別的變更或其名稱的變更) 都將意謂著,如果以先前版本來序列化的話,同樣型別的現有物件可能無法成功地還原序列化。

如果物件的狀態需要在版本之間變更,類別的作者有兩個選擇:

  • 實作 ISerializable。這可以讓您精確掌握序列化和還原序列化的處理,並讓未來狀態在還原序列化期間可以被正確加入和解譯。
  • NonSerialized 屬性標記不重要的成員變數。這個選項應該只有在您預期類別的不同版本之間會有次要的變更時才會用到。例如,當新變數已經加入至類別的較新版本時,可以將變數標記為 NonSerialized 來確保類別會與先前版本保持相容。

請參閱

二進位序列化 | 使用 .NET 遠端處理存取其他應用程式定義域中的物件 | XML 序列化