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