2009-07-08 57 views
3

在我當前的項目中,我使用FxCop來處理各種代碼分析警告。對於命名規則,我可以選擇更改名稱來匹配規則,或者決定保留當前的拼寫並壓制警告。關於標記爲[Serializable]的類或屬性,我對名稱更改的影響感興趣。特別是,如何影響現有序列化數據的向後兼容性?可序列化類和名稱重構

回答

2

如果更改字段名需要讀取更改之前連載舊數據,那麼它可能會導致混亂。 BinaryFormatter主要是一個基於字段(名稱)的序列化程序,它不會很高興。只要沒有外部代碼引用它(並確保運行你的單元測試),更改屬性和方法應該沒問題。可行的選項:手動序列化(ISerializable)和序列化代理。很多痛苦。

如果您使用的是XmlSerializer/DataContractSerialializer,那麼您可以將序列化名稱單獨命名爲成員名稱,這樣很容易修復。

[XmlElement("Color")] // original spelling 
public string Colour {get;set;} // now with the correct spelling ;-p 
:和其他一些串行器完全不;-p

XmlSerializer例如使用名稱