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