private static bool DeserializeArrayValueElement( XmlReader reader, out InjectionParameterValueElement valueElement) { ArrayValueElement element = new ArrayValueElement(); element.DeserializeElement(reader); valueElement = element; return(true); }
public static InjectionParameterValue CreateParameterValue( string typeName, string genericParameterName, InjectionParameterValueElement valueElement, UnityTypeResolver typeResolver) { string genericParameter; bool isGenericParameterArray; ExtractGenericParameter(genericParameterName, out genericParameter, out isGenericParameterArray); if (!string.IsNullOrEmpty(genericParameter)) { if (!isGenericParameterArray) { if (valueElement == null) { return(new GenericParameter(genericParameter)); } else { DependencyValueElement dependencyElement = valueElement as DependencyValueElement; if (dependencyElement != null) { if (!string.IsNullOrEmpty(dependencyElement.Name)) { return(new GenericParameter(genericParameter, dependencyElement.Name)); } else { return(new GenericParameter(genericParameter)); } } else { // should not happen - checked during config deserialization throw new InvalidOperationException(Resources.InvalidConfiguration); } } } else { if (valueElement == null) { return(new GenericResolvedArrayParameter(genericParameter)); } else { ArrayValueElement arrayElement = valueElement as ArrayValueElement; if (arrayElement != null) { return(arrayElement.CreateParameterValue(genericParameter)); } else { // should not happen - checked during config deserialization throw new InvalidOperationException(Resources.InvalidConfiguration); } } } } else { if (valueElement == null) { valueElement = new DependencyValueElement(); } valueElement.TypeResolver = typeResolver; return(valueElement.CreateParameterValue(typeResolver.ResolveType(typeName))); } }