是否可以从XmlSerializer序列化中排除某些类型的成员?

时间:2009-10-22 18:11:45

标签: c# .net serialization ixmlserializable

我有一些公众成员我不想被序列化,想知道是否有属性吗?

5 个答案:

答案 0 :(得分:7)

您正在寻找XmlIgnore

答案 1 :(得分:5)

使用 XmlIgnoreAttribute 进行静态处理,正如其他人所建议的那样。

您也可以动态执行此操作。假设您有一个可序列化的属性名称。然后是以下内容:

[XmlIgnore]
public bool NameSpecified {
    get {
        // your logic here
    }
}

如果此特殊属性getter返回true, Name 将包含在输出XML文档中,否则将不包括在内。 NameSpecified 本身标有[XmlIgnore],因为您显然不想包含它。

答案 2 :(得分:4)

XmlIgnore可以解决问题。

答案 3 :(得分:2)

使用XmlIgnore属性

答案 4 :(得分:0)

继Azheglov关于“指定”后缀的注释之后,序列化时也会考虑DefaultValue属性,如果默认值,则根本不会序列化值。