Работа нумераторов обеспечивается с помощью специального провайдера, предоставляющего возможность создания нумераторов и отслеживания их значений. Для XPO используется XPNumeratorPersistenceProvider, для доменных компонентов – DCNumeratorPersistentProvider. Оба провайдера реализуют интерфейс INumeratorPersistenceProvider.

За создание и управление нумераторами отвечает класс NumeratorManager, управляющий непосредственно инициализацией сервиса и привязкой нумераторов к свойствам объектов. За привязку нумератора к свойству объекта отвечает объект NumeratorLink, где содержатся сведения о нумераторе, тип и индекс привязки, а также свойство объекта.

 

Class diagram: