Sdílet prostřednictvím


CArchive::GetObjectSchema

Volání této funkce z Serialize funkce zjištění verze objektu, který je nyní rekonstruován.

UINT GetObjectSchema( );

Vrácená hodnota

Při rekonstrukci, verzi objektu přečtení.

Poznámky

Volání této funkce je platná pouze pokud CArchive je načítán objekt (CArchive::IsLoading vrátí nenulovou hodnotu).Je třeba v první volání Serialize funkci a volaná pouze jednou.Vrácená hodnota (UINT) –1 označuje číslo verze neznámý.

A CObject -mohou používat odvozené třídy VERSIONABLE_SCHEMA kombinované (pomocí bitové OR ) s verzí schématu sama (v IMPLEMENT_SERIAL makro) vytvoření "versionable objektu," objekt, jehož Serialize členské funkce můžete přečíst více verzí.Funkce výchozí rámec (bez VERSIONABLE_SCHEMA) je k vyvolání výjimky, když je neodpovídající verze.

Příklad

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

Požadavky

Záhlaví: afx.h

Viz také

Referenční dokumentace

Třída CArchive

Graf hierarchie

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading