using MAX.Core.Interfaces; using MAX.Framework.Interfaces; using Microsoft.AspNetCore.Builder; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using MySql.Data.MySqlClient; namespace Store.Modules.CloudProduct { public class Module : IModule { /// /// 本模块自己的配置文件 /// public const string ConfigurationFileName = "appsettings.ImageCache.json"; public int Priority => IntPriority.Normal; /// /// 服务注册阶段(builder.Build() 之前):这里只能拿到容器和配置,碰不到 app /// public void AddModule(IHostApplicationBuilder host) { IServiceCollection services = host.Services; IConfigurationManager configuration = host.Configuration; if (!string.IsNullOrWhiteSpace(ConfigurationFileName)) { string path = Path.IsPathRooted(ConfigurationFileName)? ConfigurationFileName: Path.Combine(Path.GetDirectoryName(GetType().Assembly.Location)!, ConfigurationFileName); configuration.AddJsonFile(path, optional: false, reloadOnChange: true); } } /// /// 管道装配阶段(builder.Build() 之后、app.Run() 之前):这里可以挂中间件、解析容器里的服务 /// public void UseModule(IApplicationBuilder app) { } } }