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