0

我对通用列表的反序列化有一些问题。我的类实现了IXmlSerializable接口并将一些MyFilter对象存储在Filters属性中。它包含以下代码:

写XML:

XmlSerializer serializer = new XmlSerializer(typeof(List<MyFilter>));
serializer.Serialize(bodyWriter, Filters.ToList());

读取 XML:

XmlSerializer serializer = new XmlSerializer(typeof(List<MyFilter>));
Filters = (List<MyFilter>)serializer.Deserialize(reader);

序列化或 xml 结构本身没有问题。MyFilter还实现了IXmlSerializable接口。
反序列化 xml 时会出现此问题:在运行时,当过滤器依赖当前不可用的数据时,某些MyFilter对象的反序列化可能会失败。这是“按设计工作”,但当然会杀死整个过程,但有一个例外。

所以我的问题是:如何在反序列化期间跳过引发异常的MyFilter对象?
我想我必须手动反序列化集合,捕获异常并继续下一个元素。这是一个好方法吗?怎么做?

4

0 回答 0