Bottles.AssemblyFinder.AssembliesFromPath C# (CSharp) Метод

AssembliesFromPath() публичный статический Метод

public static AssembliesFromPath ( string path, bool>.Func assemblyFilter ) : IEnumerable
path string
assemblyFilter bool>.Func
Результат IEnumerable
        public static IEnumerable<Assembly> AssembliesFromPath(string path, Func<Assembly, bool> assemblyFilter)
        {
            var assemblyPaths = Directory.GetFiles(path)
                .Where(file =>
                    Path.GetExtension(file).Equals(
                        ".exe",
                        StringComparison.OrdinalIgnoreCase)
                    ||
                    Path.GetExtension(file).Equals(
                        ".dll",
                        StringComparison.OrdinalIgnoreCase));

            foreach (var assemblyPath in assemblyPaths)
            {
                var assembly =
                    AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(
                        x => x.GetName().Name == Path.GetFileNameWithoutExtension(assemblyPath));

                if (assembly == null)
                {
                    try
                    {
                        assembly = Assembly.LoadFrom(assemblyPath);
                    }
                    catch
                    {
                    }
                }

                if (assembly != null && assemblyFilter(assembly))
                {
                    yield return assembly;
                }
            }
        }