CArchive::GetObjectSchema

UINT GetObjectSchema ( );

Значення, яке повертається

Десеріалізаціі Версія об'єкт був прочитаний.

Зауваження

Дзвінків з Serialize функція визначення версії об'єкта, який в даний час deserialized. Виклик цієї функції дійсна тільки при CArchive об'єкт в даний час завантажені (CArchive::IsLoading повертає ненульовим). Вона повинна бути перший дзвінок у функції Serialize і називається лише один раз. Повернення значення (UINT) – 1 вказує, що номер версії невідомий).

CObject-похідного класу можуть використовувати VERSIONABLE_SCHEMA (за допомогою порозрядне або) у поєднанні з версія схеми, сама (у IMPLEMENT_SERIAL макрос) для створення "versionable об'єкт", тобто об'єкт, чия функція-член Serialize можна прочитати декілька версій. Рамках функціональність (без VERSIONABLE_SCHEMA) є кинути виняток, коли невідповідність версії.

Приклад

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

CMyObject::Serialize (CArchiveamp, ar) до втрати {
   Якщо (АР.IsLoading())
   {
      Int nVersion = АР.GetObjectSchema();

Switch(nVersion)
      {
      випадку 0:
         / / читати в попередній версії / / цей об'єкт
         перерви;
      випадку 1:
         / / читати в поточній версії
         / / Цей об'єкт
         перерви;
      за замовчуванням:
         / / доповідь невідомій версії / / цей об'єкт
         перерви;
      }
   }
   інше
   {
      / / Звичайний зберігання код йде тут
   }
}

Огляд CArchiveЧлени класу | Ієрархічна діаграма

Дивіться такожnbsp;CObject::Serialize, CObject::IsSerializable, IMPLEME&NT_SERIAL, DECLARE_SERIAL, CArchive::IsLoading

Index