/// <summary>
        /// Loads assemblies according scanPatterns.
        /// </summary>
        /// <param name="scanDirectory">Directory to scan.</param>
        /// <param name="assemblyScanPatterns">Assembly wildcard scan patterns.</param>
        /// <returns>Assemblies.</returns>
        public static IEnumerable <Assembly> LoadAssemblies(string scanDirectory, params string[] assemblyScanPatterns)
        {
            List <string> messagesList = new List <string>();

            AssemblySource assemblySource = new AssemblySource(
                loadFromDomain: true,
                loadFromDirectory: scanDirectory,
                searchPatterns: assemblyScanPatterns,
                assemblyFilters: new AssemblyFilters(assemblyScanPatterns));

            IEnumerable <Assembly> assemblies = TypeLoader
                                                .LoadAssemblies(assemblySource, messagesList)
                                                .ToArrayDebug();

            return(assemblies);
        }