这是一个C#类我正在序列化为XML,目前使用的是System.Xml.Serialization.XmlSerializer:
public class Stuff
{
// ...
[XmlElement("things")]
public List<Thing> Things { get; set; }
}
在序列化时,有没有办法控制是否序列化列表中的每个东西? (例如,在每个Thing上调用谓词以确定是否应该包含谓词。)
注意:我已经阅读了很多关于&#34; ShouldSerialize *&#34;来自other questions的技巧,但这似乎只适用于属性级别 - 也就是说,序列化整个列表,或者没有。我想要的是为我列表中的每个成员决定。解决方案不必使用XmlSerializer,如果有更好的方法可以解决它。
答案 0 :(得分:0)
序列化是关于序列化整个对象,可能除了对象的某些属性。
如果您希望列表中的各个元素不被序列化,那么请不要将它们放在列表中。可能会创建列表的副本,但删除了不需要的元素。