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