CArchive::GetObjectSchema
Appelez cette fonction de la fonction d' Serialize pour déterminer la version de l'objet actuellement est désérialisé.
UINT GetObjectSchema( );
Valeur de retour
Pendant la désérialisation, la version de l'objet qui est lu.
Notes
Appeler cette fonction n'est valide que lorsque l'objet d' CArchive est chargé (CArchive::IsLoading retourne une valeur différente de zéro). Ce doit être le premier appel de la fonction d' Serialize et appelé qu'une seule fois. Une valeur de retour (uint) – 1 indique que le numéro de version est inconnu.
CObject- la classe dérivée peut utiliser VERSIONABLE_SCHEMA mixte (lors de l'utilisation de bits OR) à la version du schéma elle-même (dans la macro d' IMPLEMENT_SERIAL ) pour créer un objet versionable « , » autrement dit, un objet dont la fonction membre d' Serialize peut lire plusieurs versions. La fonctionnalité par défaut d'infrastructure (sans VERSIONABLE_SCHEMA) est de lever une exception lorsque la version est mal approprié.
Exemple
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
}
}
Configuration requise
Header: afx.h