Es gibt eine kleine Änderung im XmlSerializer seit der Version 4.0 des .Net Frameworks. MSDN erwähnt die Änderung mit dem Satz “In the the XmlSerializer class no longer serializes objects that are marked as [Obsolete].”. Nicht nur ist die Grammatik des Satzes falsch, auch bedeutet das: Objekte, die mit [Obsolete] gekennzeichnete Properties enthalten, können ggf. nicht mehr korrekt (de)serialisiert werden.
Es bedeutet außerdem: Niemals das Obsolete-Attribut in einer enum verwenden!
Der Grund ist einfach: wenn eine Entität mit dem enum-Wert “a” serialisiert wurde, kann sie nach dem Markieren des Wertes “a” mit dem Obsolete-Attribut nicht mehr gelesen werden. Eine InvalidOperationException wird statt dessen gefeuert.
Diese Änderung bedeutet weiterhin, dass das Obsolete-Attribut nicht mehr länger ein Hinweis an den Programmierer ist, sondern ggf. vorhandene Daten unlesbar machen kann.
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen