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