Инициализация контекста объектов
|
Если в качестве базового класса для карточки используется базовая карточка |
|
Для класса, унаследованного от |
Пример инициализации контекста объектов, а также добавления в него основных сервисов и преобразователей данных приведён ниже.
using DocsVision.BackOffice.ObjectModel;
using DocsVision.BackOffice.ObjectModel.Mapping;
using DocsVision.BackOffice.ObjectModel.Services;
using DocsVision.Platform.Data.Metadata;
using DocsVision.Platform.ObjectManager;
using DocsVision.Platform.ObjectModel;
using DocsVision.Platform.ObjectModel.Mapping;
using DocsVision.Platform.ObjectModel.Persistence;
using DocsVision.Platform.SystemCards.ObjectModel.Mapping;
using DocsVision.Platform.SystemCards.ObjectModel.Services;
namespace ConnectDV
{
class Program
{
static UserSession userSession; (1)
static ObjectContext objectContext; (2)
static void Main(string[] args)
{
CreateContext();
}
static void CreateContext()
{
string serverDocsvisionUrl = "ConnectAddress=http://localhost/DocsVision/StorageServer/StorageServerService.asmx;BaseName=SampleBase;UserName=IvanovII;Password=SamplePass"; (3)
SessionManager sessionManager = SessionManager.CreateInstance(serverDocsvisionUrl); (4)
userSession = sessionManager.CreateSession();
var sessionContainer = new System.ComponentModel.Design.ServiceContainer(); (5)
sessionContainer.AddService(typeof(DocsVision.Platform.ObjectManager.UserSession), userSession);
objectContext = new ObjectContext(sessionContainer); (6)
IObjectMapperFactoryRegistry mapperFactoryRegistry = objectContext.GetService<IObjectMapperFactoryRegistry>();
mapperFactoryRegistry.RegisterFactory(typeof(SystemCardsMapperFactory)); (7)
mapperFactoryRegistry.RegisterFactory(typeof(BackOfficeMapperFactory));
IServiceFactoryRegistry serviceFactoryRegistry = objectContext.GetService<IServiceFactoryRegistry>();
serviceFactoryRegistry.RegisterFactory(typeof(SystemCardsServiceFactory)); (8)
serviceFactoryRegistry.RegisterFactory(typeof(BackOfficeServiceFactory));
objectContext.AddService<IPersistentStore>(DocsVisionObjectFactory.CreatePersistentStore(new SessionProvider(userSession), null)); (9)
IMetadataProvider metadataProvider = DocsVisionObjectFactory.CreateMetadataProvider(userSession); (10)
objectContext.AddService<IMetadataManager>(DocsVisionObjectFactory.CreateMetadataManager(metadataProvider, userSession));
objectContext.AddService<IMetadataProvider>(metadataProvider);
}
}
}
| 1 | Сессия пользователя. |
| 2 | Контекст объектов. |
| 3 | Строка соединения с сервером Docsvision. |
| 4 | Подключение к серверу и открытие сессии. |
| 5 | Инициализация сервис-провайдера. |
| 6 | Инициализация контекста объектов.
В качестве контейнера может выступать компонент карточки, унаследованный от |
| 7 | Получение сервис-реестра и регистрация фабрик преобразователей. |
| 8 | Получение сервис-реестра и регистрация фабрик сервисов. |
| 9 | Регистрация сервиса для работы с хранилищем Docsvision. |
| 10 | Регистрация поставщика метаданных карточек. |
-
DocsVision.Platform.ObjectManager.dll -
DocsVision.Platform.ObjectModel.dll -
DocsVision.Platform.SystemCards.ObjectModel.dll -
DocsVision.Platform.StorageServer.dll -
DocsVision.BackOffice.ObjectModel.dll