我对通用列表的反序列化有一些问题。我的类实现了 IXmlSerializable 接口,并将一些 MyFilter 对象存储在过滤器属性中。它包含以下代码:
中WriteXML:
XmlSerializer serializer = new XmlSerializer(typeof(List<MyFilter>));
serializer.Serialize(bodyWriter, Filters.ToList());
的ReadXml:
XmlSerializer serializer = new XmlSerializer(typeof(List<MyFilter>));
Filters = (List<MyFilter>)serializer.Deserialize(reader);
序列化或xml结构本身没有问题。 MyFilter 类还实现了 IXmlSerializable 接口。
xml被反序列化时会出现问题:在运行时,当过滤器依赖于当前不可用的数据时,某些 MyFilter 对象的反序列化可能会失败。这是“按设计工作”但当然杀死整个过程有一个例外。
所以我的问题是:如何在反序列化过程中跳过 MyFilter 对象抛出异常?我想我必须手动反序列化集合,捕获异常并继续下一个元素。这是一个好方法吗?怎么办呢?