Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
In dit artikel wordt het serialisatiemechanisme in de Microsoft Foundation Class Library (MFC) uitgelegd, zodat objecten tussen uitvoeringen van uw programma kunnen worden bewaard.
Serialisatie is het schrijven of lezen van een object naar of van een permanent opslagmedium, zoals een schijfbestand. Serialisatie is ideaal voor situaties waarin u de status van gestructureerde gegevens (zoals C++-klassen of -structuren) tijdens of na de uitvoering van een programma wilt behouden. Door de serialisatieobjecten van MFC te gebruiken, kan dit op een standaard en consistente manier gebeuren, waardoor de gebruiker geen bestandsbewerkingen handmatig hoeft uit te voeren.
MFC biedt ingebouwde ondersteuning voor serialisatie in de klasse CObject. Alle klassen die zijn afgeleid van CObject , kunnen dus profiteren van CObjecthet serialisatieprotocol.
Het basisidee van serialisatie is dat een object de huidige status moet kunnen schrijven, meestal aangeduid met de waarde van de lidvariabelen, naar permanente opslag. Later kan het object opnieuw worden gemaakt door de status van het object uit de opslag te lezen of deserialiseren. Serialisatie verwerkt alle details van objectaanwijzers en kringverwijzingen naar objecten die worden gebruikt bij het serialiseren van een object. Een belangrijk punt is dat het object zelf verantwoordelijk is voor het lezen en schrijven van een eigen status. Om een klasse te serialiseren, moet deze dus de basisserialisatiebewerkingen implementeren. Zoals wordt weergegeven in de serialisatiegroep van artikelen, kunt u deze functionaliteit eenvoudig toevoegen aan een klasse.
MFC gebruikt een object van de CArchive klasse als intermediair tussen het object dat moet worden geserialiseerd en het opslagmedium. Dit object is altijd gekoppeld aan een CFile object waaruit de benodigde informatie voor serialisatie wordt verkregen, inclusief de bestandsnaam en of de aangevraagde bewerking een lees- of schrijfbewerking is. Het object dat een serialisatiebewerking uitvoert, kan het CArchive object gebruiken zonder rekening te houden met de aard van het opslagmedium.
Een CArchive object maakt gebruik van overbelaste invoegingsoperatoren (<<) en extractieoperators>> om schrijf- en leesbewerkingen uit te voeren. Zie CObjects opslaan en laden via een archief in het artikel Serialisatie: Een object serialiseren voor meer informatie.
Opmerking
Verwar de CArchive klasse niet met iostream-klassen voor algemeen gebruik, die alleen voor opgemaakte tekst zijn. De CArchive klasse is bedoeld voor geserialiseerde objecten in binaire indeling.
Als u wilt, kunt u MFC-serialisatie overslaan om uw eigen mechanisme te maken voor permanente gegevensopslag. U moet de klasselidfuncties overschrijven die serialisatie initiƫren op de opdracht van de gebruiker. Zie de discussie in Technical Note 22 van de ID_FILE_OPEN, ID_FILE_SAVE en ID_FILE_SAVE_AS standaardopdrachten.
De volgende artikelen hebben betrekking op de twee hoofdtaken die nodig zijn voor serialisatie:
Het artikel Serialisatie: Serialisatie versus database-invoer/uitvoer beschrijft wanneer serialisatie een geschikte invoer-/uitvoertechniek is in databasetoepassingen.
Zie ook
Concepten
Algemene MFC-onderwerpen
CArchive-klasse
CObject-klasse
CDocument-klasse
CFile-klasse