/// <inheritdoc cref="LoadModuleServiceCollectionExtensions.LoadModuleFile(IServiceCollection, Action{FileModuleSource}?, Action{ModuleLoadOptions}?, string[])"/> public static IHostBuilder LoadModuleFile(this IHostBuilder hostBuilder, Action <FileModuleSource>?sourceOptionAction, Action <ModuleLoadOptions>?optionAction, params string[] files) { var source = new FileModuleSource(files); sourceOptionAction?.Invoke(source); return(hostBuilder.InternalAddModuleSource(source, optionAction)); }
/// <summary> /// 加载指定的文件模块 /// </summary> /// <param name="services"></param> /// <param name="sourceOptionAction">目录源配置</param> /// <param name="optionAction">加载配置</param> /// <param name="files">模块文件列表</param> /// <returns></returns> public static IModuleLoaderBuilder LoadModuleFile(this IServiceCollection services, Action <FileModuleSource>?sourceOptionAction, Action <ModuleLoadOptions>?optionAction, params string[] files) { var source = new FileModuleSource(files); sourceOptionAction?.Invoke(source); return(services.InternalAddModuleSource(source, optionAction)); }
/// <summary> /// 增加要加载的模块文件 /// </summary> /// <param name="moduleLoaderBuilder"></param> /// <param name="sourceOptionAction"></param> /// <param name="files"></param> /// <returns></returns> public static IModuleLoaderBuilder AddModuleFile(this IModuleLoaderBuilder moduleLoaderBuilder, Action <FileModuleSource>?sourceOptionAction, params string[] files) { var source = new FileModuleSource(files); sourceOptionAction?.Invoke(source); return(moduleLoaderBuilder.InternalAddModule(source)); }
public void GeneralLoad() { var filePath = GetSampleModule1FilePath(); var fileModuleSource = new FileModuleSource(filePath); Assert.AreEqual(1, fileModuleSource.OriginFilePaths.Count); Assert.AreEqual(filePath, fileModuleSource.OriginFilePaths[0]); var modules = fileModuleSource.GetModules().ToArray(); Assert.AreEqual(1, modules.Length); Assert.AreEqual("SampleModule1Module", modules.First().Name); }
public void LoadWithFilter() { var filePaths = new[] { GetSampleModule1FilePath(), GetSampleModule2FilePath(), GetSampleModule3FilePath(), GetSampleModule4FilePath(), GetSampleModule5FilePath(), }; var fileModuleSource = new FileModuleSource(filePaths) { FileFilter = m => m.Contains(GetSampleModule1FilePath()) }; Assert.AreEqual(5, fileModuleSource.OriginFilePaths.Count); Assert.IsTrue(filePaths.SequenceEqual(fileModuleSource.OriginFilePaths)); var modules = fileModuleSource.GetModules().ToArray(); Assert.AreEqual(1, modules.Length); Assert.AreEqual("SampleModule1Module", modules.First().Name); }