Partager via


CArchive::SerializeClass

Appelez la fonction membre lorsque vous souhaitez stocker et charger des informations de version d'une classe de base.

void SerializeClass(
   const CRuntimeClass* pClassRef 
);

Paramètres

  • pClassRef
    Un pointeur vers un objet de classe d'exécution de la classe de base.

Notes

SerializeClass lit ou écrit la référence à une classe à l'objet d' CArchive , selon la direction d' CArchive.Utilisez SerializeClass à la place de ReadClass et WriteClass comme moyen pratique de sérialiser les objets de classe de base ; SerializeClass requiert moins de code et moins paramètres.

Comme ReadClass, SerializeClass vérifie que les informations de classe archivées sont compatibles avec votre classe d'exécution.S'il n'est pas compatible, SerializeClass lève CArchiveException.

Votre classe de runtime doit utiliser DECLARE_SERIAL et IMPLEMENT_SERIAL; sinon, SerializeClass lève CNotSupportedException.

Utilisez la macro de RUNTIME_CLASS pour récupérer la valeur pour le paramètre d' pRuntimeClass .La classe de base doit être utilisé la macro d' IMPLEMENT_SERIAL .

Exemple

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

Configuration requise

Header: afx.h

Voir aussi

Référence

Classe de CArchive

Graphique de la hiérarchie

CArchive::ReadClass

CArchive::WriteClass

CArchive::GetObjectSchema

CArchive::SetObjectSchema

Classe de CArchiveException

Classe de CNotSupportedException