次の例のように、 BinaryFormatterによってディスクにシリアル化される C# クラスがあります。
// Version 3.0
[Serializable]
public class Person
{
public string FullName;
[OptionalField(VersionAdded=2)]
public string NickName;
[OptionalField(VersionAdded=2)]
public DateTime BirthDate;
[OptionalField(VersionAdded=3)]
public int Weight;
}
後で、次の 1 つ以上によってこのクラスをリファクタリングしたい
- 名前を変更する -
名前空間を変更する
- 別のアセンブリに移動する
私が知る限り、バイナリ ファイルは、まったく同じ名前、名前空間、およびアセンブリ名を持つクラスが利用可能な場合にのみ逆シリアル化できます。
これを回避するにはどうすればよいですか? バージョン トレラント
シリアル化を壊すことなく、逆シリアル化を別のクラス名、名前空間、およびアセンブリにマップすることは可能ですか?