public virtual List<Assembly> FindAssemblies(Predicate<Assembly> isTrueOf)
        {
            var results = new List<Assembly>();
            var applicationDomain = new ApplicationDomain(AppDomain.CurrentDomain);

            foreach (var fileInfo in applicationDomain.GetAssemblyFiles())
                applicationDomain.Load(fileInfo.Name.Replace(fileInfo.Extension, ""));

            foreach (var assembly in applicationDomain.GetAssemblies().Where(x => policies.All(y => y.IsAssemblyAllowed(x))))
            {
                if (isTrueOf(assembly))
                {
                    results.Add(assembly);
                }
            }

            return results;
        }
示例#2
0
        public virtual List <Assembly> FindAssemblies(Predicate <Assembly> isTrueOf)
        {
            var results           = new List <Assembly>();
            var applicationDomain = new ApplicationDomain(AppDomain.CurrentDomain);

            foreach (var fileInfo in applicationDomain.GetAssemblyFiles())
            {
                applicationDomain.Load(fileInfo.Name.Replace(fileInfo.Extension, ""));
            }

            foreach (var assembly in applicationDomain.GetAssemblies().Where(x => policies.All(y => y.IsAssemblyAllowed(x))))
            {
                if (isTrueOf(assembly))
                {
                    results.Add(assembly);
                }
            }

            return(results);
        }