Share via


CArchive::SerializeClass

Llame a esta función miembro cuando desee almacenar y cargar la información de versión de una clase base.

void SerializeClass(
   const CRuntimeClass* pClassRef 
);

Parámetros

  • pClassRef
    Un puntero a un objeto de la clase en tiempo de ejecución para la clase base.

Comentarios

Lecturas o escrituras deSerializeClass la referencia a una clase al objeto de CArchive , en función de la dirección de CArchive.Utilice SerializeClass en lugar de ReadClass y WriteClass como una manera cómoda de serializar objetos de clase base; SerializeClass requiere menos codificada y menos parámetros.

Como ReadClass, SerializeClass comprueba que la información almacenada de la clase es compatible con la clase del runtime.Si no es compatible, SerializeClass producirá CArchiveException.

La clase en tiempo de ejecución debe usar DECLARE_SERIAL y IMPLEMENT_SERIAL; si no, SerializeClass producirá CNotSupportedException.

Utilice la macro de RUNTIME_CLASS para recuperar el valor para el parámetro de pRuntimeClass .La clase base debe haber utilizado la macro de IMPLEMENT_SERIAL .

Ejemplo

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

encabezado: afx.h

Vea también

Referencia

Clase CArchive

Gráfico de jerarquía

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

Clase de CArchiveException

Clase de CNotSupportedException