Mercurial > pub > ImplabNet
diff Implab.ServiceHost/Unity/RegisterElement.cs @ 277:963b17c275be v3
Refactoring
Added <array> element to injection parameters
Working on registrations of factories
author | cin |
---|---|
date | Sat, 28 Apr 2018 18:48:09 +0300 |
parents | 22629bf26121 |
children | 8714471e8d78 |
line wrap: on
line diff
--- a/Implab.ServiceHost/Unity/RegisterElement.cs Sat Apr 28 00:11:38 2018 +0300 +++ b/Implab.ServiceHost/Unity/RegisterElement.cs Sat Apr 28 18:48:09 2018 +0300 @@ -6,7 +6,7 @@ namespace Implab.ServiceHost.Unity { [XmlRoot("register", Namespace = Schema.ContainerConfigurationNamespace)] - public class RegisterElement : AbstractRegistration { + public class RegisterElement : TypeAbstractRegistration { /// <summary> /// An optional type which is registered as a service in the container, must be assignable to <see cref="ProvidesType">. @@ -18,11 +18,19 @@ [XmlElement("constructor", typeof(ConstructorInjectionElement))] [XmlElement("property", typeof(PropertyInjectionElement))] [XmlElement("method", typeof(MethodInjectionElement))] - public AbstractInjectionElement[] Injectors { get; set; } + public AbstractMemberInjection[] Injectors { get; set; } + + public override Type GetImplementationType(Func<string, Type> resolver) { + return string.IsNullOrEmpty(MapToType) ? null : resolver(MapToType); + } - public override void Visit(ContainerBuilder context) { - context.Visit(this); + public override void Visit(TypeRegistrationBuilder builder) { + if(Injectors != null) + foreach(var injector in Injectors) + injector.Visit(builder); } + + } } \ No newline at end of file