2012-08-06 66 views
0

我有一個自定義文件類型與我的應用程序相關聯,我通過簡單地將它序列化到一個文件來保存一個類實例。如何使我的自定義文件類型可升級?

我希望能夠通過向類中添加更多屬性來升級我的應用程序,也許還會刪除屬性。我怎樣才能讓舊版本的應用程序能夠使用新文件 - 無論它能夠得到它們,更重要的是,如何獲得新版本的應用程序以使用舊文件?有沒有實現這個目標的常見做法?

我在問這個之前第一個版本發佈 - 如何讓文件類型容易升級?

(谷歌搜索跑進了大量的「噪音」。)

+1

可能這將有助於http://msdn.microsoft.com/en-us/library/ms229752%28v=vs.80%29.aspx – yogi 2012-08-06 13:48:05

+0

@yogi你可以讓你的評論到答案。它看起來很有保證。 – ispiro 2012-08-06 13:53:14

+0

不。鏈接不是答案。如果@yogi可以總結頁面的內容(並鏈接到該頁面),那將會作出回答。 – Oded 2012-08-06 13:55:25

回答

1

我認爲有兩種方式

  • 由約吉
  • 提到或者你可以轉換到新的格式,你可以使用類似Version Tolerant Serialization - Visual Studio中,皇家TS,我想更多的做以下。
0

也許你應該看看協議緩衝區的C#實現。這是一種由google開發的序列化類型(http://code.google.com/p/protobuf-net/)它使用id來進行身份驗證。所以你序列化的數據沒有被屬性名等綁定。

0

正如你在發佈第一個版本之前所要求的那樣,我來及時告訴你:長期來說,你不會對BinaryFormatter感到滿意。 我認爲你應該將存儲對象模型與「操作對象」分開。

只是序列化程序的運行狀態是指作爲一個簡單的序列化方法,但它從不斷再次作出顯著的變化對這些對象阻止。

我認爲proto-buf非常好,因爲版本控制路徑非常清晰。此外,XmlSerializer序列化類很好,因爲它們是可讀的。