我有一个由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;
}
后来,我想通过以下一项或多项来重构这个类
- 更改其名称
- 更改其命名空间
- 移动到另一个程序集
据我所知,只有具有完全相同名称、名称空间和程序集名称的类可用时,才能对二进制文件进行反序列化。
我该如何解决这个问题?是否可以在不破坏Version Tolerant Serialization
的情况下将反序列化映射到不同的类名、命名空间和程序集?