diff Implab.ServiceHost/Unity/InjectionValueBuilder.cs @ 278:6691aff01de1 v3

Implab: added XmlDefaultSeializer (SerializersPool is now obsolete) Implab.ServiceHost: rewritten TypeReference (added support for nested types), stable API
author cin
date Thu, 03 May 2018 09:59:44 +0300
parents 963b17c275be
children 8714471e8d78
line wrap: on
line diff
--- a/Implab.ServiceHost/Unity/InjectionValueBuilder.cs	Sat Apr 28 18:48:09 2018 +0300
+++ b/Implab.ServiceHost/Unity/InjectionValueBuilder.cs	Thu May 03 09:59:44 2018 +0300
@@ -7,7 +7,7 @@
 
 namespace Implab.ServiceHost.Unity {
 
-    public class InjectionValueBuilder {
+    public class InjectionParameterBuilder {
 
         readonly TypeResolver m_resolver;
 
@@ -26,7 +26,7 @@
             }
         }
 
-        internal InjectionValueBuilder(TypeResolver resolver, Type defaultType) {
+        internal InjectionParameterBuilder(TypeResolver resolver, Type defaultType) {
             m_resolver = resolver;
             DefaultType = defaultType;
         }
@@ -37,11 +37,11 @@
                     throw new Exception("The type must be specified");
                 return DefaultType;
             }
-            return m_resolver.Resolve(typeSpec);
+            return m_resolver.Resolve(typeSpec, true);
         }
 
         public Type ResolveType(string typeSpec) {
-            return m_resolver.Resolve(typeSpec);
+            return m_resolver.Resolve(typeSpec, true);
         }
 
         public void SetValue(Type type, object value) {
@@ -75,13 +75,16 @@
 
             InjectionParameterValue[] injections = (arrayParameter.Items ?? new InjectionParameterElement[0])
                 .Select(x => {
-                    var builder = new InjectionValueBuilder(m_resolver, itemsType);
+                    var builder = new InjectionParameterBuilder(m_resolver, itemsType);
                     x.Visit(builder);
                     return builder.Injection;
                 })
                 .ToArray();
 
-            var array = itemsType.IsGenericParameter ? (object)new GenericResolvedArrayParameter(itemsType.Name, injections) : new ResolvedArrayParameter(itemsType, injections);
+            var array = itemsType.IsGenericParameter ?
+                (object)new GenericResolvedArrayParameter(itemsType.Name, injections) :
+                new ResolvedArrayParameter(itemsType, injections);
+
             ValueType = arrayType;
             Value = array;
         }