/// <summary> /// Деинициализировать сервисы /// </summary> private void DisposeServices() { // Освобождаем ссылки _IODispatcher.UnregisterDestination(this as IIODestination); _servicesTree = null; _servicesTree = null; _images = null; }
/// <summary> /// Инициализировать сервисы (получить необходимые ссылки) /// </summary> private void InitializeServices() { // Получаем ссылки на службы _notificationService = InitializeNotificationService(); // Создаём контейнеры сервисов // Общий ServiceContainer _services = new ServiceContainer(); // Для дерева "Навигатора" _servicesTree = new AdvancedServiceContainer(_services); // Для менеджера закладок _servicesPages = new AdvancedServiceContainer(_services); // Сервис именованных изображений _images = ServicesManager.GetService(typeof(INamedImageList)) as INamedImageList; // Системный диспетчер событий _systemDispatcher = ServicesManager.GetService(typeof(IIODispatcher)) as IIODispatcher; // Получаем сервис для работы с "горячими" клавишами _hotKeysManager = ServicesManager.GetService(typeof(IHotKeysManager)) as IHotKeysManager; // Коллекции команд по умолчанию для типов объектов _defaultCommands4ObjTypes = ServicesManager.GetService(typeof(IDefaultCommands4ObjTypes)) as IDefaultCommands4ObjTypes; // Служба уведомлений создана if (_notificationService != null) { // Добавим её в свой контейнер сервисов _services.AddService(typeof(INotificationService), _notificationService); } // Зарегистрируемся как назначение для событий _IODispatcher.RegisterDestination(this as IIODestination); // Добавляем в контейнер специальные сервисы // Сервис менеджера закладок _services.AddService(typeof(IViewsManager), this.pageViewsManager); // Сервис для корректной работы контекстного меню и закладок _services.AddService(typeof(IViewState), new ViewStateService()); // Сервис для управления колонками в дереве "Навигатора" _services.AddService(typeof(ITreeListColumns), this as ITreeListColumns); // Сервис для получения списка команд по умолчанию _services.AddService(typeof(IDefaultCommands4ObjTypes), _defaultCommands4ObjTypes); // Сервис диспетчера событий _services.AddService(typeof(IIODispatcher), _IODispatcher); // Назначаем контейнер сервисов дереву "Навигатора" this.navigatorTreeView.Services = _servicesTree; // Назначаем контейнер сервисов менеджеру закладок this.pageViewsManager.Services = _servicesPages; }