2009-07-08 13 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例で名前を使用しないでください

関連する問題