XmlSerializer: So deserialisieren Sie einen nicht mehr vorhandenen Enum-Wert

Ich verwende den XMLSerializer, um diese Klasse in einer Datei zu speichern. Die Klasse hat eine Zeichenfolge und eine Aufzählung wie folgt:

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


public enum TypeEnum
{
    Temperature,
    Pressure,
    Humidity,
}

Wenn es serialisiert ist, sieht es so aus.

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

Ich habe dieses Objekt für mehrere Versionen ohne Probleme serialisiert und deserialisiert. Ich möchte Humidity nicht länger unterstützen, deshalb habe ich es aus der Enumeration entfernt. Dies führt jedoch zu einer Ausnahme bei der Deserialisierung aus XML, da der Wert im Feld TypeEnum, Humidity, kein gültiger Wert für TypeEnum ist. Das macht Sinn, aber wie geht man damit um?

Ich möchte diesen Fehler einfach ignorieren. Und belassen Sie den Wert auf null. Ich habe versucht, die OnUnknownElement XmlDeserilizationEvent-Klasse zu implementieren. Leider wird dieser Fehler dadurch nicht abgefangen.

Irgendwelche Ideen, wie man diesen Fehler abfängt und ignoriert (ich kann aufräumen, nachdem die Deserialisierung abgeschlossen ist).

Mitch

Antworten auf die Frage(4)

Ihre Antwort auf die Frage