Example #1
0
        public sealed override Exception TryResolve(ReflectionDomain reflectionDomain, RuntimeAssembly currentAssembly, bool ignoreCase, out RuntimeType result)
        {
            result = null;
            RuntimeType genericType;
            Exception   typeLoadException = GenericType.TryResolve(reflectionDomain, currentAssembly, ignoreCase, out genericType);

            if (typeLoadException != null)
            {
                return(typeLoadException);
            }
            LowLevelList <RuntimeType> genericTypeArguments = new LowLevelList <RuntimeType>();

            foreach (TypeName genericTypeArgumentName in GenericArguments)
            {
                RuntimeType genericTypeArgument;
                typeLoadException = genericTypeArgumentName.TryResolve(reflectionDomain, currentAssembly, ignoreCase, out genericTypeArgument);
                if (typeLoadException != null)
                {
                    return(typeLoadException);
                }
                genericTypeArguments.Add(genericTypeArgument);
            }
            result = ReflectionCoreNonPortable.GetConstructedGenericType(genericType, genericTypeArguments.ToArray());
            return(null);
        }