【发布时间】:2010-11-18 15:32:20
【问题描述】:
我有使用二进制序列化为以下类存储的数据:
[Serializable]
public abstract class BaseBusinessObject
{
private NameValueCollection _fieldErrors = new NameValueCollection();
protected virtual NameValueCollection FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
在某个时候,这个类变成了这样:
[Serializable]
public abstract class BaseBusinessObject
{
private Dictionary<string, string> _fieldErrors = new Dictionary<string, string>();
protected virtual Dictionary<string, string> FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
这会导致反序列化旧数据出现问题。
我的第一个想法是实现ISerializable,但是这个类有很多属性以及数百个继承类,我也必须实现它。
我想在反序列化期间更改旧数据以匹配当前结构,或者有一种干净的方式来升级旧数据。
【问题讨论】:
标签: c# serialization binary-serialization