XmlSerializer: Como desserializar um valor de enum que não existe mais

Eu estou usando o XMLSerializer para salvar esta classe em um arquivo. A classe tem uma string e um enum como mostrado abaixo:

public class IOPoint
{
     string Name {get; set;}
     TypeEnum {get; set;}
}


public enum TypeEnum
{
    Temperature,
    Pressure,
    Humidity,
}

Quando serializado, parece com isso.

<IOPoint>
  <Name>Relative Humidity</Name>
  <TypeEnum>Humidity</TypeEnum>
</IOPoint>

Eu tenho serializado e desserializado esse objeto sem problemas para várias versões. Eu não quero mais suportar umidade, então eu removi do enum. No entanto, isso causa uma exceção ao desserializar do XML porque o valor no campo TypeEnum, umidade, não é um valor válido para o TypeEnum. Isso faz sentido, mas como lidar com isso?

O que eu gostaria de fazer é ignorar esse erro. E deixe o valor como null. Eu tentei implementar a classe OnUnknownElement XmlDeserilizationEvent. Infelizmente, isso não pega esse erro.

Qualquer idéia sobre como capturar e ignorar esse erro (posso limpar depois que a desserialização for concluída).

Mitch

questionAnswers(4)

yourAnswerToTheQuestion