Freigeben über


Was ist ein CArchive-Objekt?

Ein CArchive Objekt stellt einen typsicheren Puffermechanismus zum Schreiben oder Lesen serialisierbarer Objekte in oder aus einem CFile Objekt bereit. In der Regel stellt das CFile Objekt eine Datenträgerdatei dar. Es kann jedoch auch eine Speicherdatei (CSharedFile Objekt) sein, die möglicherweise die Zwischenablage darstellt.

Ein bestimmtes CArchive Objekt speichert entweder Daten (schreibt, serialisiert) oder lädt (liest, deserialisiert) Daten, aber nie beide. Die Lebensdauer eines CArchive Objekts ist auf einen Durchlauf durch Das Schreiben von Objekten in eine Datei oder das Lesen von Objekten aus einer Datei beschränkt. Daher sind zwei aufeinander folgende CArchive Objekte erforderlich, um Daten in eine Datei zu serialisieren und sie dann aus der Datei zurück zu deserialisieren.

Wenn ein Archiv Objekte an eine Datei speichert, fügt das Archiv den CRuntimeClass Namen an die Objekte an. Wenn dann ein anderes Archiv Objekte aus einer Datei in den Speicher lädt, werden die CObjectvon -abgeleiteten Objekte basierend auf den CRuntimeClass Objekten dynamisch rekonstruiert. Auf ein bestimmtes Objekt kann mehr als einmal verwiesen werden, da es durch das Speichern des Archivs in die Datei geschrieben wird. Das Laden des Archivs wird das Objekt jedoch nur einmal rekonstruieren. Die Details dazu, wie ein Archiv Informationen an Objekte anfügt CRuntimeClass und Objekte rekonstruiert, unter Berücksichtigung möglicher mehrfacher Verweise, wird in Technical Note 2 beschrieben.

Da Daten in ein Archiv serialisiert werden, sammelt das Archiv die Daten, bis der Puffer voll ist. Anschließend schreibt das Archiv seinen Puffer in das Objekt, auf das CFile vom CArchive Objekt verwiesen wird. Ebenso liest sie beim Lesen von Daten aus einem Archiv Daten aus der Datei in den Puffer und dann aus dem Puffer in Ihr deserialisiertes Objekt. Durch diese Pufferung wird die Häufigkeit reduziert, mit der eine Festplatte physisch gelesen wird, wodurch die Leistung Ihrer Anwendung verbessert wird.

Siehe auch

Serialisierung: Serialisieren eines Objekts