private static AssemblyLoaderPathNameCriterion GetFileNameCriterion(IEnumerable <string> list, bool includeList) { return (AssemblyLoaderPathNameCriterion.NewCriterion( (string pathName, out IEnumerable <string> complaints) => { var fileName = Path.GetFileName(pathName); foreach (var i in list) { if (String.Equals(fileName, i, StringComparison.OrdinalIgnoreCase) ^ includeList) { complaints = new string[] { "Assembly filename is excluded." }; return false; } } complaints = null; return true; })); }
private static void LoadAdditionalAssemblies() { var logger = TraceLogger.GetLogger("AssemblyLoader.Client", TraceLogger.LoggerType.Runtime); var directories = new Dictionary<string, SearchOption> { { Path.GetDirectoryName(typeof(OutsideRuntimeClient).GetTypeInfo().Assembly.Location), SearchOption.AllDirectories } }; var excludeCriteria = new AssemblyLoaderPathNameCriterion[] { AssemblyLoaderCriteria.ExcludeResourceAssemblies, AssemblyLoaderCriteria.ExcludeSystemBinaries() }; var loadProvidersCriteria = new AssemblyLoaderReflectionCriterion[] { AssemblyLoaderCriteria.LoadTypesAssignableFrom(typeof(IProvider)) }; AssemblyLoader.LoadAssemblies(directories, excludeCriteria, loadProvidersCriteria, logger); }
private void LoadAdditionalAssemblies() { #if !NETSTANDARD_TODO var logger = LogManager.GetLogger("AssemblyLoader.Client", LoggerType.Runtime); var directories = new Dictionary<string, SearchOption> { { Path.GetDirectoryName(typeof(OutsideRuntimeClient).GetTypeInfo().Assembly.Location), SearchOption.AllDirectories } }; var excludeCriteria = new AssemblyLoaderPathNameCriterion[] { AssemblyLoaderCriteria.ExcludeResourceAssemblies, AssemblyLoaderCriteria.ExcludeSystemBinaries() }; var loadProvidersCriteria = new AssemblyLoaderReflectionCriterion[] { AssemblyLoaderCriteria.LoadTypesAssignableFrom(typeof(IProvider)) }; this.assemblyProcessor.Initialize(); AssemblyLoader.LoadAssemblies(directories, excludeCriteria, loadProvidersCriteria, logger); #endif }
private AssemblyLoader NewAssemblyLoader(List<string> exclusionList) { var directories = new Dictionary<string, SearchOption> { {Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), SearchOption.AllDirectories} }; var excludeCriteria = new AssemblyLoaderPathNameCriterion[] { AssemblyLoaderCriteria.ExcludeResourceAssemblies, AssemblyLoaderCriteria.ExcludeFileNames(exclusionList) }; var loadProvidersCriteria = new AssemblyLoaderReflectionCriterion[] { AssemblyLoaderCriteria.LoadTypesAssignableFrom(typeof(IProvider)) }; return AssemblyLoader.NewAssemblyLoader(directories, excludeCriteria, loadProvidersCriteria, logger); }