c# tag Wie kann ich eine Eigenschaft beim Serialisieren mit dem DataContractSerializer ignorieren?




title tag wordpress (4)

Ich verwende .NET 3.5SP1 und DataContractSerializer, um eine Klasse zu serialisieren. In SP1 haben sie das Verhalten so geändert, dass Sie DataContract / DataMember-Attribute nicht in die Klasse aufnehmen müssen und das Ganze nur serialisiert wird. Dies ist das Verhalten, das ich verwende, aber jetzt muss ich eine Eigenschaft aus dem Serializer ignorieren. Ich weiß, dass das Hinzufügen des DataContract-Attributs zu der Klasse eine Möglichkeit ist, und das DataMember-Attribut nur für alle Elemente einfügen, die ich aufnehmen möchte. Ich habe jedoch Gründe, dass das für mich nicht funktioniert.

Meine Frage ist also, gibt es ein Attribut oder etwas, das ich verwenden kann, damit der DataContractSerializer eine Eigenschaft ignoriert?




Darüber hinaus serialisiert DataContractSerializer Elemente, die als [Serializable] gekennzeichnet sind, und serialisiert unmarkierte Typen in .NET 3.5 SP1 und höher, um Unterstützung für die Serialisierung anonymer Typen zu ermöglichen.

Es hängt also davon ab, wie Sie Ihre Klasse eingerichtet haben, um zu verhindern, dass ein Mitglied serialisiert:

  • Wenn Sie [DataMember] verwendet haben, entfernen Sie das [DataMember] für die Eigenschaft.
  • Wenn Sie [Serializable] , fügen Sie [NonSerialized] vor dem Feld für die Eigenschaft hinzu.
  • Wenn Sie Ihre Klasse nicht dekoriert haben, sollten Sie der Eigenschaft [IgnoreDataMember] hinzufügen.





serialization