.NET 6 Worker Service中如何将appsettings.json与IConfiguration关联
.NET 6通过IConfiguration读取appsettings.json中的数据库连接字符串
1. 确认appsettings.json的配置格式
先确保你的appsettings.json里已配置好数据库连接字符串,示例格式如下:
{ "ConnectionStrings": { "DefaultConnection": "Server=.;Database=你的数据库名;Trusted_Connection=True;TrustServerCertificate=True;" } }
2. 在Program.cs中直接读取
.NET 6的WebApplication.CreateBuilder会自动加载appsettings.json等配置文件,无需额外初始化,直接通过builder.Configuration访问配置即可:
var builder = WebApplication.CreateBuilder(args); // 读取连接字符串的两种方式 // 方式一:用GetConnectionString快捷方法(推荐) var connectionString = builder.Configuration.GetConnectionString("DefaultConnection"); // 方式二:通过配置节点路径读取 // var connectionString = builder.Configuration["ConnectionStrings:DefaultConnection"]; // 示例:将连接字符串注入到DbContext builder.Services.AddDbContext<你的DbContext类>(options => options.UseSqlServer(connectionString)); var app = builder.Build(); // 后续中间件、服务配置... app.Run();
3. 后台服务中通过依赖注入读取
如果是后台服务类需要访问连接字符串,直接在构造函数中注入IConfiguration即可:
public class 你的后台服务类 : BackgroundService { private readonly IConfiguration _configuration; public 你的后台服务类(IConfiguration configuration) { _configuration = configuration; } protected override async Task ExecuteAsync(CancellationToken stoppingToken) { // 在服务逻辑中读取连接字符串 var connectionString = _configuration.GetConnectionString("DefaultConnection"); // 执行数据库操作... } }
然后在Program.cs中注册这个后台服务:
builder.Services.AddHostedService<你的后台服务类>();
注意事项
- 确保appsettings.json的复制到输出目录属性设置为「较新时复制」,避免部署时缺失配置文件。
GetConnectionString是框架专门为ConnectionStrings节点提供的快捷读取方法,和直接通过节点路径读取效果一致,但更简洁。
内容的提问来源于stack exchange,提问作者Berat
相关产品推荐
相关产品推荐

