XmlSerializer: Jak odserializować wartość wyliczoną, która już nie istnieje

Używam XMLSerializer, aby zapisać tę klasę do pliku. Klasa ma łańcuch i wyliczenie, jak pokazano poniżej:

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


public enum TypeEnum
{
    Temperature,
    Pressure,
    Humidity,
}

Po serializacji wygląda to tak.

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

Szeregowałem i deserializowałem ten obiekt bez żadnych problemów dla kilku wersji. Nie chcę już obsługiwać wilgotności, więc usunąłem ją z enum. Powoduje to jednak wyjątek podczas deserializacji z XML, ponieważ wartość w polu TypeEnum, Wilgotność, nie jest poprawną wartością dla TypeEnum. To ma sens, ale jak sobie z tym poradzić?

Chciałbym po prostu zignorować ten błąd. I pozostaw wartość jako null. Próbowałem zaimplementować klasę XmlDeserilizationEvent OnUnknownElement. Niestety, nie łapie tego błędu.

Wszelkie pomysły na złapanie i zignorowanie tego błędu (mogę oczyścić po zakończeniu deserializacji).

Mitch

questionAnswers(4)

yourAnswerToTheQuestion