using Microsoft.Extensions.Configuration; namespace Config; public static class ConfigBuilderExtensions { /// /// 创建默认配置(约定优于配置) /// 自动查找 appsettings.json,启用热重载和环境变量 /// /// 基础路径,默认为应用程序目录 /// 环境变量前缀,默认为 "APP_" /// 配置管理器 public static ConfigManager CreateDefault( string? basePath = null, string? environmentPrefix = "APP_") { basePath ??= AppContext.BaseDirectory; // 查找配置文件(appsettings.json, appsettings.Development.json 等) var configFiles = new List { "appsettings.json" }; // 根据环境添加特定配置 var environment = Environment.GetEnvironmentVariable("DOTNET_ENVIRONMENT") ?? Environment.GetEnvironmentVariable("ASPNETCORE_ENVIRONMENT") ?? "Production"; var envConfigFile = $"appsettings.{environment}.json"; var envConfigPath = Path.Combine(basePath, envConfigFile); if (File.Exists(envConfigPath)) configFiles.Add(envConfigFile); // 构建配置 return ConfigBuilder.BuildFromFiles( configFiles.ToArray(), true, true, environmentPrefix, basePath ); } /// /// 创建最小化配置(只有 appsettings.json) /// public static ConfigManager CreateMinimal(string? basePath = null) { basePath ??= AppContext.BaseDirectory; return ConfigBuilder.BuildFromFiles( new[] { "appsettings.json" }, false, false, basePath: basePath ); } }