Serializacja w MFC

W tym artykule wyjaśniono mechanizm serializacji realizowany w Microsoft Foundation klasy biblioteki (MFC) zezwalająca na obiekty do utrwalania między uruchamia tego programu.

Serializacja jest proces pisania lub czytania obiektu do lub z nośnika magazynu trwałego, takich jak pliku na dysku.Serializacja jest idealnym rozwiązaniem w sytuacjach, w których jest pożądane, aby utrzymać stan danych strukturalnych (na przykład lub konstrukcje klas języka C++), w trakcie lub po realizacji programu.Za pomocą serializacji obiektów dostarczanych przez MFC umożliwia to możliwe w sposób standardowy i konsekwentny, łagodzeniu użytkownika z konieczności ręcznie wykonywać operacje na plikach.

MFC udostępnia wbudowaną obsługę serializacji w klasie CObject.W efekcie wszystkie klasy pochodzące z CObject mogą skorzystać z CObjectprzez Protokół serializacji.

Główną ideą powstania serializacji jest, że obiekt powinny mieć możliwość zapisu w jego aktualnym stanie, zwykle wskazywany przez wartość jego zmienne składowe w pamięci trwałej.Później obiekt może być ponownie utworzony czytanie lub deserializacji obiektu Państwo z magazynu.Serializacja obsługuje wszystkie szczegóły obiektu wskaźniki i cykliczne odwołania do obiektów, które są używane podczas serializowania obiektu.Kluczowym elementem jest odpowiedzialny za odczyt i zapis własnym państwie samego obiektu.W ten sposób aby klasa mogła mieć możliwość serializowania, musi implementować operacji podstawowych serializacji.Jak pokazano w grupie serializacji artykułów, jest łatwo dodać tę funkcję do klasy.

MFC używa obiektu CArchive klasy jako pośrednik między obiekt do szeregowania i nośnik przechowywania danych.Ten obiekt zawsze wiąże się z CFile obiektu, z którego uzyskuje niezbędne informacje do serializacji, łącznie z nazwą pliku i czy Żądana operacja jest do odczytu lub zapisu.Można użyć obiektu, który wykonuje operację serializacji CArchive obiektu, bez względu na rodzaj nośnik przechowywania danych.

A CArchive obiektu używa przeciążone wstawiania (<<) i ekstrakcji (>>) operatory do wykonywania zapisywania i odczytywania danych operacji.Aby uzyskać więcej informacji, zobacz przechowywanie i ładowanie CObjects za pośrednictwem archiwum w artykule serializacji: Serializowanie obiektu.

[!UWAGA]

Nie należy mylić CArchive klasy z klasy iostream ogólnego przeznaczenia, które dotyczą tylko tekst sformatowany.CArchive Klasa jest dla obiektów serializowanych w formacie binarnym.

Jeśli chcesz, można pominąć serializacji MFC stworzyć własny mechanizm przechowywania trwałych danych.Konieczne będzie zastąpienie funkcji elementów członkowskich klasy, które inicjowałyby serializacji na polecenia użytkownika.Zobacz Omówienie w technicznej 22 Uwaga z ID_FILE_OPEN, ID_FILE_SAVE, i ID_FILE_SAVE_AS standardowych poleceń.

Następujące artykuły obejmują dwa podstawowe zadania wymagane do serializacji:

Artykuł serializacji: serializacji kontra Baza danych operacji wejścia/wyjścia opisuje, kiedy serializacji jest odpowiednią technikę wejścia/wyjścia w aplikacji bazy danych.

Zobacz też

Informacje

Klasa CArchive

Klasa CObject

Klasa CDocument

Klasa CFile

Koncepcje

Tematy ogólne dotyczące MFC

Inne zasoby

Pojęcia związane z MFC