配置与选项模式
appsettings.json、IOptions<T>、环境变量、User Secrets
配置与选项模式
appsettings.json → IOptions<T> → 强类型配置。这是 .NET 的标准配置流程。
学完本章你将: 掌握 appsettings.json、IOptions
appsettings.json
json
{
"AppName": "MyApp",
"Database": {
"ConnectionString": "Server=localhost;Database=mydb",
"MaxRetries": 3
},
"Email": {
"SmtpHost": "smtp.example.com",
"Port": 587
}
}
选项模式 IOptions
csharp
// 定义配置类
public class DatabaseOptions
{
public const string SectionName = "Database";
public string ConnectionString { get; set; } = "";
public int MaxRetries { get; set; } = 3;
}
// 注册
builder.Services.Configure<DatabaseOptions>(
builder.Configuration.GetSection(DatabaseOptions.SectionName));
// 使用
public class UserService
{
public UserService(IOptions<DatabaseOptions> options)
{
var connStr = options.Value.ConnectionString;
var retries = options.Value.MaxRetries;
}
}
环境变量覆盖
bash
# 环境变量自动覆盖 appsettings.json——生产环境核心机制
export Database__ConnectionString="Server=prod;..."
export Database__MaxRetries=5
# __ 双下划线 → JSON 层级
# Database:ConnectionString = Database__ConnectionString