Пример #1
0
        private static void FromDirectoryHelper(List <Assembly> assemblies, string path, bool recursive)
        {
            foreach (var file in Directory.GetFiles(path))
            {
                var extension = Path.GetExtension(file).ToLower();
                if (extension == ".dll" || extension == ".exe")
                {
                    try
                    {
                        assemblies.Add(Assembly.LoadFrom(file));
                    }
                    catch (BadImageFormatException)
                    {
                        // Ignore files that are not .NET assemblies
                    }
                }
            }

            if (recursive)
            {
                foreach (var directory in Directory.GetDirectories(path))
                {
                    AssemblyFamily.FromDirectoryHelper(assemblies, directory, recursive);
                }
            }
        }
Пример #2
0
        /// <summary>
        /// Creates an <see cref="AssemblyFamily"/> instance from all assemblies in the specified directory.
        /// </summary>
        /// <param name="path">The path from which to load the assemblies.</param>
        /// <param name="recursive">Indicates whether to recursively search for assemblies in descendant directories</param>
        /// <returns>The created <see cref="AssemblyFamily"/> instance.</returns>
        public static AssemblyFamily FromDirectory(string path, bool recursive = false)
        {
            var assemblies = new List <Assembly>();

            AssemblyFamily.FromDirectoryHelper(assemblies, path, recursive);
            return(AssemblyFamily.FromAssemblies(assemblies));
        }