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