private IEnumerable <Assembly> GetAssembliesForContainer() { if (RootAssembliesNames.Any()) { var allAssembliesInCurrentDomain = AppDomain.CurrentDomain.GetAssemblies(); //Filter from given Root assembly names if (RootAssembliesNames.Any()) { var filtered = (from assemblyToSelect in allAssembliesInCurrentDomain from nameToFilter in RootAssembliesNames let lowerNameToFilter = nameToFilter.ToLower() let lowerNameAssemblyToSelect = assemblyToSelect.FullName.ToLower() where lowerNameAssemblyToSelect.StartsWith(lowerNameToFilter) select assemblyToSelect); return(filtered); } //Get all assemblies in the current domain return(allAssembliesInCurrentDomain); } //Get all assemblies in the execution location var currentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); if (currentPath == null) { throw new NullReferenceException( $"Could not load detail from:" + $" '{nameof(Assembly.GetExecutingAssembly)}' about the current execution location."); } var folder = new DirectoryInfo(currentPath); var files = new List <FileInfo>(); var dllFiles = folder.GetFiles("*.dll", SearchOption.TopDirectoryOnly); files.AddRange(dllFiles); var exeFiles = folder.GetFiles("*.exe", SearchOption.TopDirectoryOnly); files.AddRange(exeFiles); return(files.Select(x => Assembly.LoadFrom(x.FullName))); }
private List <RegisteredFile> GetAssembliesDetail() { var currentPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); var allFiles = GetFilesFromPath(currentPath); if (!RootAssembliesNames.Any()) { return(allFiles); } var filtered = from fileToSelect in allFiles from nameToFilter in RootAssembliesNames let lowerNameToFilter = nameToFilter.ToLower() let lowerNameAssemblyToSelect = fileToSelect.Name.ToLower() where lowerNameAssemblyToSelect.StartsWith(lowerNameToFilter) select fileToSelect; return(filtered.ToList()); }