CArchive::GetObjectSchema
從 Serialize 函式的呼叫此函式以判斷序列化目前物件的版本。
UINT GetObjectSchema( );
傳回值
在還原序列化期間,讀取物件的版本。
備註
呼叫此函式才有效,在 CArchive 物件載入時 (CArchive::IsLoading 傳回非零)。 它應該只呼叫一次的呼叫會在 Serialize 函式和。 傳回值 (UINT) – 1 表示版本號碼是未知的。
CObject衍生類別可以使用 VERSIONABLE_SCHEMA 合併 (使用位元 OR) 與結構描述版本 (在 IMPLEMENT_SERIAL 巨集) 即建立物件、可控制版本「,」 Serialize 成員函式上讀取多個版本的物件。 預設架構功能 (沒有 VERSIONABLE_SCHEMA) 會擲回例外狀況,當版本不符時。
範例
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
}
}
需求
Header: afx.h