XmlSerializer: как десериализовать значение перечисления, которое больше не существует
Я использую XMLSerializer для сохранения этого класса в файл. У класса есть строка и перечисление, как показано ниже:
public class IOPoint
{
string Name {get; set;}
TypeEnum {get; set;}
}
public enum TypeEnum
{
Temperature,
Pressure,
Humidity,
}
Когда сериализуется, это выглядит так.
<IOPoint>
<Name>Relative Humidity</Name>
<TypeEnum>Humidity</TypeEnum>
</IOPoint>
Я сериализовал и десериализовал этот объект без проблем для нескольких версий. Я больше не хочу поддерживать влажность, поэтому я удалил ее из перечисления. Однако это вызывает исключение при десериализации из XML, поскольку значение в поле TypeEnum, Humidity, не является допустимым значением для TypeEnum. Это имеет смысл, но как справиться с этим?
То, что я хотел бы сделать, это просто игнорировать эту ошибку. И оставьте значение как ноль. Я пытался реализовать класс OnUnknownElement XmlDeserilizationEvent. К сожалению, это не ловит эту ошибку.
Любые идеи о том, как отловить и игнорировать эту ошибку (я могу исправить после завершения десериализации).
Митч