Ich habe Daten, die unter Verwendung von binärer Serialisierung für die folgende Klasse gespeichert wurde:Wie deserialize ich alte Daten für einen Typ, der geändert wurde?
[Serializable]
public abstract class BaseBusinessObject
{
private NameValueCollection _fieldErrors = new NameValueCollection();
protected virtual NameValueCollection FieldErrors
{
get { return _fieldErrors; }
set { _fieldErrors = value; }
}
...
}
Irgendwann wurde die Klasse dazu geändert:
[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; }
}
...
}
Diese Probleme verursachen Deserialisieren alte Daten.
Mein erster Gedanke war, ISerializable
zu implementieren, aber diese Klasse hat zahlreiche Eigenschaften sowie Hunderte von erbenden Klassen, für die ich dies auch implementieren müsste.
Ich möchte entweder die alten Daten ändern, um während der Deserialisierung mit der aktuellen Struktur übereinzustimmen, oder die alten Daten sauber aktualisieren.
Dies bot die realistischste Herangehensweise für meine Bedürfnisse, aber ich ging eine andere Route hinunter. – ramnik