我正在使用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
}

07-27 21:02