Udostępnij za pośrednictwem


CArchive::GetObjectSchema

Wywołanie tej funkcji z Serialize funkcja określania wersji obiektu, który jest aktualnie rozszeregować.

UINT GetObjectSchema( );

Wartość zwracana

Podczas deserializacji wersji obiektu odczytu.

Uwagi

Wywołanie tej funkcji jest prawidłowa tylko po CArchive ładowania obiektu (CArchive::IsLoading zwraca wartość różną od zera).Powinno się pierwsze wywołanie w Serialize funkcji i nazywane tylko raz.Wartość zwracana (UINT) –1 wskazuje, że numer wersji jest nieznany.

A CObject-może użyć klasy pochodne VERSIONABLE_SCHEMA Scalonej (bitowe przy użyciu OR) z wersją schematu, sama (w IMPLEMENT_SERIAL makro) utworzyć "Centrum obiektu," oznacza to, że obiekt którego Serialize funkcji składowej może odczytać wiele wersji.Funkcje ramy domyślne (bez VERSIONABLE_SCHEMA) jest zgłaszanie wyjątku, gdy niezgodność wersji.

Przykład

IMPLEMENT_SERIAL(CSchemaObject, CObject, VERSIONABLE_SCHEMA | 1)

void CSchemaObject::Serialize(CArchive& ar) 
{
   CObject::Serialize(ar);

   if (ar.IsLoading())
   {
      int nVersion = ar.GetObjectSchema();

      switch(nVersion)
      {
         case 0:
            // read in previous version of  
            // this object 
            break;
         case 1:
            // read in current version of 
            // this object 
            break;
         default:
            // report unknown version of  
            // this object 
            break;
      }
   }
   else
   {
     // Normal storing code goes here
   }
}

Wymagania

Nagłówek: afx.h

Zobacz też

Informacje

Klasa CArchive

Diagram hierarchii

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading