次のクラスのバイナリシリアル化を使用して格納されたデータがあります。変更された型の古いデータをどのように非直列化するのですか?
[Serializable]
public abstract class BaseBusinessObject
{
private NameValueCollection _fieldErrors = new NameValueCollection();
protected virtual NameValueCollection FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
ある時点で、クラスが次のように変更されました:
これは古いデータを直列化解除する問題の原因です。
私の最初の考えはISerializable
を実装することでしたが、このクラスには数多くのプロパティと継承クラスがあります。
デシリアライズ時に現在の構造と一致するように古いデータを変更するか、古いデータをアップグレードするクリーンな方法が必要です。
これは私のニーズに最も現実的なアプローチを提供しましたが、別のルートを終了しました。 – ramnik