Freigeben über


Versionskontrolle

.NET Framework unterstützt die Versionskontrolle und parallele Ausführung. Sofern die Schnittstellen der Klassen unverändert bleiben, funktionieren alle Klassen in allen Versionen. Da bei der Serialisierung keine Schnittstellen, sondern Membervariablen behandelt werden, müssen Sie beim Hinzufügen von Membervariablen zu Klassen, die in unterschiedlichen Versionen serialisiert werden sollen, bzw. beim Entfernen dieser Variablen aus solchen Klassen sehr umsichtig vorgehen. Dies gilt vor allem für Klassen, die die ISerializable-Schnittstelle nicht implementieren. Jede Zustandsänderung der aktuellen Version (z. B. das Hinzufügen von Membervariablen oder das Ändern der Variablentypen oder -namen) führt dazu, dass vorhandene Objekte desselben Typs nicht erfolgreich deserialisiert werden können, wenn sie mit einer Vorgängerversion serialisiert wurden.

Wenn der Zustand eines Objekts für die einzelnen Versionen geändert werden muss, haben die Klassenautoren zwei Möglichkeiten:

  • Sie können ISerializable implementieren. Dadurch können Sie den Serialisierungs- und Deserialisierungsprozess genau steuern, so dass der neue Zustand während der Deserialisierung richtig hinzugefügt und interpretiert wird.
  • Sie können unwesentliche Membervariablen mit dem NonSerialized-Attribut kennzeichnen. Diese Option sollte nur verwendet werden, wenn für die unterschiedlichen Versionen einer Klasse lediglich geringfügige Änderungen erwartet werden. Wenn beispielsweise einer späteren Version einer Klasse eine neue Variable hinzugefügt wurde, kann diese Variable als NonSerialized markiert werden, um sicherzustellen, dass die Klasse kompatibel mit den Vorgängerversionen bleibt.

Siehe auch

Binäre Serialisierung | Zugriff auf Objekte in anderen Anwendungsdomänen mit .NET-Remoting | XML- und SOAP-Serialisierung