comparison Implab.ServiceHost/Unity/FactoryElement.cs @ 279:8714471e8d78 v3

Container configuration cleanup, RC2
author cin
date Fri, 04 May 2018 18:12:42 +0300
parents 6691aff01de1
children e0916ddc9950
comparison
equal deleted inserted replaced
278:6691aff01de1 279:8714471e8d78
5 namespace Implab.ServiceHost.Unity { 5 namespace Implab.ServiceHost.Unity {
6 /// <summary> 6 /// <summary>
7 /// Расширяет стандартную регистрацию типа до фабрики, вместе с регистрацией 7 /// Расширяет стандартную регистрацию типа до фабрики, вместе с регистрацией
8 /// самой фабрики создаются регистрации сервисов, которые она предоставляет. 8 /// самой фабрики создаются регистрации сервисов, которые она предоставляет.
9 /// </summary> 9 /// </summary>
10 public class FactoryElement : RegisterElement { 10 public class FactoryElement : RegisterElement, ITypeRegistration {
11 11
12 /// <summary> 12 /// <summary>
13 /// Записи о сервисах, которые создаются данной фабрикой. 13 /// Записи о сервисах, которые создаются данной фабрикой.
14 /// </summary> 14 /// </summary>
15 /// <remarks> 15 /// <remarks>
36 Name = item.RegistrationName, 36 Name = item.RegistrationName,
37 RegistrationType = builder.ResolveType(item.RegistrationType), 37 RegistrationType = builder.ResolveType(item.RegistrationType),
38 FactoryName = Name, 38 FactoryName = Name,
39 FactoryType = factoryType 39 FactoryType = factoryType
40 }; 40 };
41 activator.Visit(builder); 41 builder.Visit(activator);
42 } 42 }
43 } else { 43 } else {
44 // если регистрация явно не задана, в качестве сервиса для регистрации 44 // если регистрация явно не задана, в качестве сервиса для регистрации
45 // используется тип создаваемый фабрикой, который будет добавлен в контейнер 45 // используется тип создаваемый фабрикой, который будет добавлен в контейнер
46 // с темже именем, что и сама фабрика (разные типы могут иметь одно имя для регистрации) 46 // с темже именем, что и сама фабрика (разные типы могут иметь одно имя для регистрации)
63 RegistrationType = providedType, 63 RegistrationType = providedType,
64 FactoryName = Name, 64 FactoryName = Name,
65 FactoryType = factoryType 65 FactoryType = factoryType
66 }; 66 };
67 67
68 activator.Visit(builder); 68 builder.Visit(activator);
69 } 69 }
70 } 70 }
71 } 71 }
72 } 72 }