Esempio n. 1
0
        /// <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));
        }
Esempio n. 3
0
        /// <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);
        }