【发布时间】:2011-04-02 12:18:02
【问题描述】:
我有一个由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 的情况下将反序列化映射到不同的类名、命名空间和程序集?
【问题讨论】:
标签: .net serialization refactoring versioning binaryformatter