Desserializando uma versão mais recente de um objeto de uma versão mais antiga do objeto

Suponha que eu tenha essa classe:

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

Essa classe é serializada quando o aplicativo é fechado e é desserializada na próxima execução.

Então, eu construí e libertei o aplicativo, e agora a classe mudou:

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

Existe uma maneira de definir uma propriedade para seu padrão na desserialização, caso ela não seja encontrada no objeto serializado antigo?

Uma maneira que pensei em manter a versão antiga da classe, em seguida, verificar a versão que foi serializada, em seguida, looping propriedades do objeto antigo e defini-las no novo objeto, mas isso não faz sentido para mim, qualquer outra solução que faz sentido ?

questionAnswers(2)

yourAnswerToTheQuestion