2009-07-09 52 views
0

在我目前的項目中,我們使用二進制xml序列化來存儲與winforms應用程序中用戶設置相關的數據。如何基於契約或模式執行序列化?

目前,我們有兩個方面的挑戰:

  1. 序列化是通過屬性正在實施的類,也有編織成他們的業務邏輯。
  2. 在不影響檢索已存儲數據的能力的情況下重新分配這些類很困難。

我的主要目標是隔離數據合同,以便它不稀釋或限制其他邏輯,以便我可以在需要時爲現有數據提供遷移路徑。

回答

1

爲什麼不創建一個對等的可序列化對象,其作用僅僅是支持序列化/反序列化?可序列化類可以具有用於將實際對象推入或推出序列化的方法,也可以使用單獨的數據映射類(如果您有嚴重的版本問題,這可能會更好)。

這樣,你的主要應用程序對象就永遠是無知的,你不必爲了支持序列化而做出妥協 - 比如公共getter和setter和attributes。最終結果將是一個序列化層,它與應用程序層的變化分離。

在n層應用程序中,這些通常被稱爲數據傳輸對象(DTO),儘管在此處描述的情況下該術語不是通常應用的。

+0

您可以使用http://www.codeplex.com/AutoMapper將您的業務對象映射到DTO。 – zvolkov 2009-07-09 15:52:57

相關問題