comparison Implab/Components/ServiceLocator.cs @ 238:bdfdba6b645b v2

fixed unpredictable Safe.Dispose behaviour
author cin
date Fri, 01 Dec 2017 01:28:56 +0300
parents 240aa6994018
children
comparison
equal deleted inserted replaced
237:f2150c16b476 238:bdfdba6b645b
5 /// <summary> 5 /// <summary>
6 /// Коллекция сервисов, позволяет регистрировать и получать сервисы. 6 /// Коллекция сервисов, позволяет регистрировать и получать сервисы.
7 /// </summary> 7 /// </summary>
8 public class ServiceLocator: Disposable, IServiceLocator, IServiceProvider { 8 public class ServiceLocator: Disposable, IServiceLocator, IServiceProvider {
9 // запись о сервисе 9 // запись о сервисе
10 struct ServiceEntry : IDisposable { 10 class ServiceEntry : IDisposable {
11 public object service; // сервис 11 public object service; // сервис
12 public bool shared; // признак того, что сервис НЕ нужно освобождать 12 public bool shared; // признак того, что сервис НЕ нужно освобождать
13 public Func<object> activator; // активатор сервиса при первом обращении 13 public Func<object> activator; // активатор сервиса при первом обращении
14 public Action<object> cleanup; // функция для очистки сервиса 14 public Action<object> cleanup; // функция для очистки сервиса
15 public List<Type> associated; // ссылки на текущую запись 15 public List<Type> associated; // ссылки на текущую запись