Роль графов объектов

При сериализации среда CLR учитывает все связанные объекты, чтобы гарантировать корректное сохранение данных. Этот набор связанных объектов называется графом объектов.

В качестве простого примера предположим, что создан набор классов, моделирующих автомобили. Существует базовый класс по имени Car, который "имеет" класс Radio. Другой класс по имени JamesBondCar расширяет базовый тип Car. На рисунке показан возможный граф объектов, который моделирует эти отношения.

При чтении графов объектов для описания соединяющих стрелок можно использовать выражение "зависит от" или "ссылается на". Таким образом, видно, что класс Car ссылается на класс Radio, JamesBondCar ссылается на Car (наследует), и на Radio (имеет).

В результате построения графа при сериализации или десериализации JamesBondCar граф объектов гарантирует, что типы Radio и Car также будут участвовать в процессе.

Граф, представляющий отношения между объектами, устанавливается автоматически, если необходимо вмешаться в конструирование графа объектов, это можно сделать посредством настройки процесса сериализации через атрибуты и интерфейсы.