Ich habe einige öffentliche Mitglieder Ich möchte nicht serialisiert werden, fragte mich, ob es ein Attribut dafür gibt?Ist es möglich, einige Mitglieder eines Typs von der XmlSerializer-Serialisierung auszuschließen?
5
A
Antwort
7
Sie suchen XmlIgnore
4
XmlIgnore
wird den Trick tun.
2
Verwenden XmlIgnore Attribut
5
Verwenden XmlIgnoreAttribute es statisch zu tun, wie andere Sie beraten.
Sie können es auch dynamisch tun. Angenommen, Sie haben eine serialisierbare Eigenschaft Name. Dann ist die folgende:
[XmlIgnore]
public bool NameSpecified {
get {
// your logic here
}
}
Wenn diese spezielle Eigenschaft Getter true zurück, Namen werden in der Ausgabe XML-Dokument enthalten sein, sonst wird es nicht aufgenommen werden. NameSpecified selbst ist mit [XmlIgnore] markiert, weil Sie es offensichtlich nicht aufnehmen möchten.
0
Im Anschluss an Azheglovs Kommentar bezüglich des Suffix "Specified" wird das Attribut DefaultValue
auch bei der Serialisierung berücksichtigt, und ein Wert wird überhaupt nicht serialisiert, wenn es der Standardwert ist.