/// <inheritdoc cref="LoadModuleServiceCollectionExtensions.LoadModuleDirectory(IServiceCollection, Action{DirectoryModuleSource}?, Action{ModuleLoadOptions}?, string[])"/> public static IHostBuilder LoadModuleDirectory(this IHostBuilder hostBuilder, Action <DirectoryModuleSource>?sourceOptionAction, Action <ModuleLoadOptions>?optionAction, params string[] directories) { var source = new DirectoryModuleSource(directories); sourceOptionAction?.Invoke(source); return(hostBuilder.InternalAddModuleSource(source, optionAction)); }
/// <summary> /// 加载指定目录下的模块 /// </summary> /// <param name="services"></param> /// <param name="sourceOptionAction">目录源配置</param> /// <param name="optionAction">加载配置</param> /// <param name="directories">目录列表</param> /// <returns></returns> public static IModuleLoaderBuilder LoadModuleDirectory(this IServiceCollection services, Action <DirectoryModuleSource>?sourceOptionAction, Action <ModuleLoadOptions>?optionAction, params string[] directories) { var source = new DirectoryModuleSource(directories); sourceOptionAction?.Invoke(source); return(services.InternalAddModuleSource(source, optionAction)); }
/// <summary> /// 增加要加载模块的目录 /// </summary> /// <param name="moduleLoaderBuilder"></param> /// <param name="sourceOptionAction"></param> /// <param name="directories"></param> /// <returns></returns> public static IModuleLoaderBuilder AddModuleDirectory(this IModuleLoaderBuilder moduleLoaderBuilder, Action <DirectoryModuleSource>?sourceOptionAction, params string[] directories) { var source = new DirectoryModuleSource(directories); sourceOptionAction?.Invoke(source); return(moduleLoaderBuilder.InternalAddModule(source)); }
public void LoadWithFilter_3() { var directoryModuleSource = new DirectoryModuleSource(GetModuleDirectory()) { SearchDepth = 5, AssemblyFilter = m => false, }; var modules = directoryModuleSource.GetModules().ToArray(); Assert.AreEqual(0, modules.Length); }
public void LoadWithFilter_4() { var directoryModuleSource = new DirectoryModuleSource(GetModuleDirectory()) { SearchDepth = 5, FileFilter = m => m.Contains(Path.GetFileName(GetSampleModule1FilePath())) }; var modules = directoryModuleSource.GetModules().ToArray(); Assert.AreEqual(1, modules.Length); Assert.AreEqual("SampleModule1Module", modules.First().Name); }
private static DirectoryModuleSource LoadDirectory(int searchDepth, int moduleCount) { var directoryModuleSource = new DirectoryModuleSource(GetModuleDirectory()) { SearchDepth = searchDepth, }; Assert.AreEqual(1, directoryModuleSource.OriginDirectories.Count); var modules = directoryModuleSource.GetModules().ToArray(); if (moduleCount > -1) { Assert.AreEqual(moduleCount, modules.Length); } if (moduleCount > 0) { Assert.AreEqual("SampleModule1Module", modules.First().Name); } return(directoryModuleSource); }