Mercurial > pub > ImplabNet
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 } |