我正在使用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類。不幸的是,這並沒有發現這個錯誤。
關於如何捕獲和忽略這個錯誤的任何想法(我可以在反序列化完成後清理)。
米奇
如果您找到了我很想知道的解決方案。我有一個相關的問題,服務器端包含一個客戶端不知道的新枚舉標誌值,所以真的想找到一種方法來管理這個字段的序列化。下次我只使用一個int,但現在...向後兼容。 – avenmore