我正在使用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字段湿度中的值不是TypeEnum的有效值。这是有道理的,但是怎么处理呢?
我只想忽略这个错误。并将该值保留为空。我已尝试实现onunknownelement xmldeserizationevent类。不幸的是,这并没有捕捉到这个错误。
关于如何捕获和忽略此错误的任何想法(我可以在反序列化完成后进行清理)。
米契
最佳答案
您可以将该成员标记为已过时
public enum TypeEnum
{
Temperature,
Pressure,
[Obsolete]
Humidity
}