如何从XML序列化中省略单个列表成员?

时间:2014-12-02 20:09:21

标签: .net xml-serialization xmlserializer

这是一个C#类我正在序列化为XML,目前使用的是System.Xml.Serialization.XmlSerializer:

public class Stuff
{
    // ...

    [XmlElement("things")]
    public List<Thing> Things { get; set; }
}

在序列化时,有没有办法控制是否序列化列表中的每个东西? (例如,在每个Thing上调用谓词以确定是否应该包含谓词。)

注意:我已经阅读了很多关于&#34; ShouldSerialize *&#34;来自other questions的技巧,但这似乎只适用于属性级别 - 也就是说,序列化整个列表,或者没有。我想要的是为我列表中的每个成员决定。解决方案不必使用XmlSerializer,如果有更好的方法可以解决它。

1 个答案:

答案 0 :(得分:0)

序列化是关于序列化整个对象,可能除了对象的某些属性。

如果您希望列表中的各个元素不被序列化,那么请不要将它们放在列表中。可能会创建列表的副本,但删除了不需要的元素。