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