Добавление сервисов и поддержки новых типов карточек в контекст объектов
По умолчанию в контекст объектов, предоставляемый в серверном расширении, загружаются сервисы и преобразователи данных (см. документ Руководство разработчика Docsvision), позволяющие работать с карточками библиотек Базовые объекты и Конструктор согласований, системными карточками и карточками приложения Управление документами: SystemCardsMapperFactory
, BackOfficeMapperFactory
, ApprovalDesignerMapperFactory
, SystemCardsServiceFactory
, BackOfficeServiceFactory
, DocumentsManagementServiceFactory
и ApprovalDesignerServiceFactory
.
Если требуется поддержать собственные типы карточек в объектной модели Docsvision, программист должен добавить в контекст объектов преобразователи данных для этих типов, и сервисы для работы с данными карточками. Инструкция по разработке фабрик сервисов и фабрик преобразователей данных приведена в Руководстве разработчика Docsvision.
Выполните указанные ниже действия для добавления сервисов и преобразователей данных в контекст объектов. Все действия выполняются в проекте серверного расширения (нового или существующего).
-
Подключите к проекту сборки, в которых реализованы классы разработанных фабрик сервисов и преобразователей данных.
-
Откройте файл ядра расширения.
-
Переопределите метод
OnObjectContextCreate
, вызываемый при создании контекста объектов, добавив в него код регистрации фабрик сервисов и преобразователей данных.Следующий код демонстрирует пример добавления в контекст объектов фабрики сервисов
CustomLibraryServiceFactory
и фабрики преобразователей данныхCustomLibraryMapperFactory
.public override void OnObjectContextCreate(ObjectContext objectContext) { base.OnObjectContextCreate(objectContext); (1) IObjectMapperFactoryRegistry mapperFactoryRegistry = objectContext.GetService<IObjectMapperFactoryRegistry>(); (2) mapperFactoryRegistry.RegisterFactory(typeof(CustomLibraryMapperFactory)); (3) IServiceFactoryRegistry serviceFactoryRegistry = objectContext.GetService<IServiceFactoryRegistry>(); (4) serviceFactoryRegistry.RegisterFactory(typeof(CustomLibraryServiceFactory)); (5) }
1 Далее следует стандартный код добавления фабрик в контекст объектов (см. Руководство разработчика Docsvision). 2 Получаем из существующего контекста объектов сервис регистрации фабрик преобразователей данных. 3 Регистрируем фабрику преобразователей данных, реализованную в классе CustomLibraryMapperFactory. 4 Получаем из существующего контекста объектов сервис регистрации фабрик сервисов. 5 Регистрируем фабрику сервисов, реализованную в классе CustomLibraryServiceFactory
.Добавленный в контекст объектов сервис можно получить стандартным образом:
ISomeService someService = objectContext.GetService<ISomeService>();
+ . Опубликуйте серверное расширение.
+ NOTE: Сборки, содержащие классы фабрик сервисов и преобразователей данных, нужно скопировать в каталог со сборкой данного серверного расширения.