Deserializar una versión más nueva de un objeto de una versión anterior del objeto

Supongamos que tengo esta clase:

[Serializable]
public class SomeClass 
{
   public SomeClass() {//init}
   public string SomeString {get;set;}
}

Esta clase se serializa cuando la aplicación se cierra y se deserializa en la próxima ejecución.

Luego, lo construí y lancé la aplicación, y ahora la clase ha cambiado:

[Serializable]
public class SomeClass
{
   public SomeClass() {//init}
   public string SomeString {get;set;}
   public int SomeInt {get;set;}
}

¿Hay alguna manera de establecer una propiedad como predeterminada en la deserialización en caso de que no se encuentre en el objeto serializado anterior?

Una forma en la que pensé es en mantener la versión anterior de la clase, luego verifique la versión que fue serializada, luego forme un bucle con las propiedades del objeto antiguo y configúrelas en el nuevo objeto, pero esto no tiene sentido para mí, cualquier otra solución que tenga sentido ?

Respuestas a la pregunta(2)

Su respuesta a la pregunta