CArchive::GetObjectSchema

UINT GetObjectSchema ( );

Valor devuelto

Durante la deserialización, la versión del objeto que se está leyendo.

Observaciones

Llamar a esta función desde la función Serialize para determinar la versión del objeto que se está actualmente está deserializando. Llamar a esta función sólo es válido cuando el objeto CArchive está siendo cargado (CArchive::IsLoading devuelve distinto de cero). Debe ser la primera llamada a la función Serialize y llamado sólo una vez. Un valor devuelto de – 1 (UINT) indica que se desconoce el número de versión).

Un CObject-clase derivada puede usar VERSIONABLE_SCHEMA combinada (usando bit a bit O) con la versión de esquema (en la macro IMPLEMENT_SERIAL ) para crear un "objeto versionable", es decir, un objeto cuya función de miembro Serialize puede leer varias versiones. La funcionalidad de marco predeterminado (sin VERSIONABLE_SCHEMA) es producir una excepción cuando la versión es no coinciden.

Ejemplo

IMPLEMENT_SERI&AL (CMyObject, CObject, VERSIONABLE_SCHEMA|1)

void CMyObject::Serialize (CArchiveamp; ar) {}
   Si (ar.IsLoading())
   {
      int nVersion = ar.GetObjectSchema();

Switch(nVersion)
      {
      caso 0:
         / / leer en la versión anterior de / / este objeto
         romper;
      caso 1:
         / / leer en la versión actual de
         / / este objeto
         romper;
      valor predeterminado:
         / informe versión desconocida de / / este objeto
         romper;
      }
   }
   otra cosa
   {
      / / Normal almacenar código va aquí
   }
}

Visió&n General de CArchive |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambiénnbsp;CObject::Serialize, CObject::IsSerializable, IMPLEME&NT_SERIAL, DECLARE_SERIAL, CArchive::IsLoading

Index