/// <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); }