Cambie las propiedades implementadas automáticamente a normal y deserialización con BinaryFormatter

Tengo un objeto con una propiedad implementada como

public String Bla {get;set;} 

Después de cambiar la implementación a algo como

private String _bla;

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

En la deserialización, esta propiedad aparece vacía.

Tengo muchos datos serializados de la implementación anterior, y me gustaría cargarlos con la nueva implementación.

¿Hay alguna forma de cambiar la implementación para que sea compatible con archivos binarios más antiguos?

EDITAR:

Algunas personas pueden tener el mismo problema, así que aquí está mi solución de hackers:

los campos generados automáticamente tienen una convención de nomenclatura que no es un código c # válido:

[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;
}

La solución rápida y sucia para mí era crear un campo de respaldo privado llamadoxMyFieldxK__BackingField en la fuente,

y parcheando los datos binarios serializados reemplazando todas las apariciones de<MyField> conxMyFieldx antes de la deserialización

Respuestas a la pregunta(2)

Su respuesta a la pregunta