【问题标题】:How to omit individual list members from XML serialization?如何从 XML 序列化中省略单个列表成员?
【发布时间】:2014-12-02 20:09:20
【问题描述】:

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

public class Stuff
{
    // ...

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

有没有办法在序列化时控制是否序列化列表中的每个单独的事物? (例如,对每个 Thing 调用谓词以确定是否应包含它。)

注意:我从other questions 中读到了很多关于“ShouldSerialize*”技巧的文章,但这似乎只适用于属性级别——也就是说,序列化整个列表,或者不序列化。我想要的是为我列表中的每个成员做出决定。如果有更好的方法,解决方案不必使用 XmlSerializer。

【问题讨论】:

    标签: .net xml-serialization xmlserializer


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我猜这对我有用。控制属性但不控制列表成员之间的区别对我来说有点武断,但如果它不是经常需要的功能,这似乎是合理的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多