Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
.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