Partager via


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

Voir aussi

Référence

Classe de CArchive

Graphique de la hiérarchie

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading