CArchive::GetObjectSchema

Chiamare questa funzione dalla funzione Serialize per determinare la versione dell'oggetto attualmente deserializzazione.

UINT GetObjectSchema( );

Valore restituito

Durante la deserializzazione, la versione dell'oggetto che viene letto.

Note

Chiamare questa funzione è valido solo quando l'oggetto CArchive viene caricata (CArchive::IsLoading restituisce diverso da zero).Deve essere la prima chiamata la funzione Serialize e chiamato una sola volta.Un valore restituito di (UINT) –1 indica che il numero di versione di è sconosciuto.

CObjectnella classe derivata da può utilizzare VERSIONABLE_SCHEMA combinato mediante ORbit per bit) con la stessa versione dello schema nella macro IMPLEMENT_SERIAL ) per creare un oggetto aggiornabile", ovvero un oggetto la cui funzione membro Serialize può leggere più versioni.La funzionalità predefinita del framework (senza VERSIONABLE_SCHEMA) è generare un'eccezione quando la versione non è adatta.

Esempio

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
   }
}

Requisiti

Header: afx.h

Vedere anche

Riferimenti

Classe di CArchive

Grafico della gerarchia

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading