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 } |
