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