Aracılığıyla paylaş


CArchive::GetObjectSchema

Bu işlevi çağrısı Serialize şu anda serisi nesne sürümünü belirlemek için işlev.

UINT GetObjectSchema( );

Dönüş Değeri

Seri kaldırma sırasında okunan nesnesinin sürümü.

Notlar

Bu işlevi, yalnızca geçerli ne zaman CArchive nesne yüklendiğinden (CArchive::IsLoading sıfır olmayan bir değer döndürür). İlk çağrıda olması gereken Serialize işlevi ve yalnızca bir kez denir. Dönüş değeri (UINT) –1 gösterir sürüm numarası bilinmiyor.

A CObject-türetilmiş bir sınıf kullanabilir VERSIONABLE_SCHEMA bir arada (Bitsel kullanarak OR) şema sürümüyle (içinde IMPLEMENT_SERIAL makro) bir "karşılaştıkları nesne," başka bir deyişle, bir nesne oluşturmak için Serialize üye işlevi, birden çok sürüm okuyabilir. Varsayılan framework işlevselliği (olmadan VERSIONABLE_SCHEMA) sürümü uyumsuz olduğunda bir özel durum oluşturmaktır.

Örnek

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

Gereksinimler

Başlık: afx.h

Ayrıca bkz.

Başvuru

CArchive sınıfı

Hiyerarşi grafik

CObject::Serialize

CObject::IsSerializable

IMPLEMENT_SERIAL

DECLARE_SERIAL

CArchive::IsLoading