Compartilhar via


CArchive::SerializeClass

Chamar essa função de membro quando você deseja armazenar e carregar informações de versão de uma classe base.

void SerializeClass( 
   const CRuntimeClass* pClassRef  
);

Parâmetros

  • pClassRef
    Um ponteiro para um objeto da classe em tempo de execução para a classe base.

Comentários

SerializeClass ler ou gravar a referência a uma classe ao objeto de CArchive , dependendo da direção de CArchive. Use SerializeClass no lugar de ReadClass e WriteClass como uma maneira conveniente para serializar objetos da classe base; SerializeClass requer menos código e menos parâmetros.

Como ReadClass, SerializeClass verifica que informações arquivadas da classe é compatível com sua classe de tempo de execução. Se não for compatível, SerializeClass irá acionar CArchiveException.

Sua classe de tempo de execução deve usar DECLARE_SERIAL e IMPLEMENT_SERIAL; caso contrário, SerializeClass irá acionar CNotSupportedException.

Use a macro de RUNTIME_CLASS para recuperar o valor para o parâmetro de pRuntimeClass . A classe base deve ter usado a macro de IMPLEMENT_SERIAL .

Exemplo

class CBaseClass : public CObject 
{
   DECLARE_SERIAL(CBaseClass);
};
class CDerivedClass : public CBaseClass
{
public:
   virtual void Serialize(CArchive& ar);
};
void CDerivedClass::Serialize(CArchive& ar)
{
   if (ar.IsStoring())
   {
      //normal code for storing contents 
      //of this object
   }
   else
   {
      //normal code for reading contents 
      //of this object
   }

   //allow the base class to serialize along 
   //with its version information
   ar.SerializeClass(RUNTIME_CLASS(CBaseClass));
   CBaseClass::Serialize(ar);
}

Requisitos

Cabeçalho: afx.h

Consulte também

Referência

Classe CArchive

Gráfico da hierarquia

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

Classe CArchiveException

Classe CNotSupportedException