CArchive::GetObjectSchema

Chamar essa função de função de Serialize para determinar qual versão do objeto que atualmente desserializado.

UINT GetObjectSchema( );

Valor de retorno

Durante a desserialização, a versão do objeto sendo lido.

Comentários

Chamar essa função é válido somente quando o objeto de CArchive está sendo carregado (CArchive::IsLoading retorna diferente de zero.)Deve ser a primeira chamada na função de Serialize e chamado somente uma vez.Um valor de retorno de (UINT) – 1 indica o número de versão é conhecido.

CObject- a classe derivada pode usar VERSIONABLE_SCHEMA combinada (usando ORbit a bit) com a própria versão de esquema (em macro de IMPLEMENT_SERIAL “) para criar um objeto com controle”, isto é, um objeto cuja função de membro de Serialize pode ler várias versões.A funcionalidade padrão do framework (sem VERSIONABLE_SCHEMA) é lançar uma exceção quando a versão é combinada problema.

Exemplo

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

Requisitos

Cabeçalho: afx.h

Consulte também

Referência

Classe de CArchive

Gráfico de hierarquia

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading