Xml反序列化一个跳过无效元素的列表?

时间:2012-06-15 13:11:44

标签: c# exception xml-serialization generic-list

我对通用列表的反序列化有一些问题。我的类实现了 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 对象抛出异常?我想我必须手动反序列化集合,捕获异常并继续下一个元素。这是一个好方法吗?怎么办呢?

0 个答案:

没有答案