U:调整调用方式和兼容性
This commit is contained in:
1 parent
433e206d45
commit
4ec76b7855
50 files changed
+5592
-47
No files matched your search
@@ -0,0 +1,59 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
|
||||
namespace Config;
|
||||
|
||||
public static class ConfigBuilderExtensions
|
||||
{
|
||||
/// <summary>
|
||||
/// 创建默认配置(约定优于配置)
|
||||
/// 自动查找 appsettings.json,启用热重载和环境变量
|
||||
/// </summary>
|
||||
/// <param name="basePath">基础路径,默认为应用程序目录</param>
|
||||
/// <param name="environmentPrefix">环境变量前缀,默认为 "APP_"</param>
|
||||
/// <returns>配置管理器</returns>
|
||||
public static ConfigManager CreateDefault(
|
||||
string? basePath = null,
|
||||
string? environmentPrefix = "APP_")
|
||||
{
|
||||
basePath ??= AppContext.BaseDirectory;
|
||||
|
||||
// 查找配置文件(appsettings.json, appsettings.Development.json 等)
|
||||
var configFiles = new List<string> { "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(),
|
||||
reloadOnChange: true,
|
||||
includeEnvironment: true,
|
||||
environmentPrefix: environmentPrefix,
|
||||
basePath: basePath
|
||||
);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 创建最小化配置(只有 appsettings.json)
|
||||
/// </summary>
|
||||
public static ConfigManager CreateMinimal(string? basePath = null)
|
||||
{
|
||||
basePath ??= AppContext.BaseDirectory;
|
||||
|
||||
return ConfigBuilder.BuildFromFiles(
|
||||
new[] { "appsettings.json" },
|
||||
reloadOnChange: false,
|
||||
includeEnvironment: false,
|
||||
basePath: basePath
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user