Ändern Sie die automatisch implementierten Eigenschaften mit BinaryFormatter auf Normal und Deserialisierung

Ich habe ein Objekt mit einer Eigenschaft wie implementiert

public String Bla {get;set;} 

Nach dem Ändern der Implementierung auf so etwas wie

private String _bla;

public String Bla
{
    get { return _bla; }
    set { _bla = value; } 
} 

Bei der Deserialisierung ist diese Eigenschaft leer.

Ich habe viele serialisierte Daten aus der alten Implementierung und möchte sie mit der neuen Implementierung laden

Gibt es eine Möglichkeit, die Implementierung so zu ändern, dass sie mit älteren Binärdateien kompatibel ist?

BEARBEITEN:

Einige Leute könnten auf dasselbe Problem stoßen, also hier ist meine hackische Lösung:

Die automatisch generierten Felder haben eine Namenskonvention, die ungültiger c # -Code ist:

[CompilerGenerated]
private string <MyField>k__BackingField;

[CompilerGenerated]
public void set_MyField(string value)
{
    this.<MyField>k__BackingField = value;
}

[CompilerGenerated]
public string get_MyField()
{
    return this.<MyField>k__BackingField;
}

Die schnelle und schmutzige Lösung für mich bestand darin, ein privates Sicherungsfeld mit dem Namen zu erstellenxMyFieldxK__BackingField in der Quelle,

und Patchen der serialisierten Binärdaten durch Ersetzen aller Vorkommen von<MyField> mitxMyFieldx vor der Deserialisierung

Antworten auf die Frage(2)

Ihre Antwort auf die Frage