Ejemplo n.º 1
0
        /// <summary>
        /// Search a list of assemblies for the first matching type
        /// </summary>
        /// <param name="assemblyNames">List of assembly names to search</param>
        /// <param name="typeNames">List of suitable types</param>
        /// <returns>An appropriate type</returns>
        /// <remarks>Great for finding an implementation type that could have one or more names in one or more assemblies</remarks>
        public static Type FindType(string[] assemblyNames, string[] typeNames)
        {
            foreach (var assemblyName in assemblyNames)
            {
                Assembly assembly = ConnectorHelpers.FindAssembly(assemblyName);
                if (assembly != null)
                {
                    foreach (var type in typeNames)
                    {
                        Type result = ConnectorHelpers.FindType(assembly, type);
                        if (result != null)
                        {
                            return(result);
                        }
                    }
                }
            }

            return(null);
        }