如何在ASP.NET Core 6的Program.cs文件中使用appsettings.json配置
ASP.NET Core 6 顶级语句模式下访问配置与依赖注入说明
核心逻辑说明
ASP.NET Core 6 使用顶级语句简化Program.cs后,调用WebApplication.CreateBuilder(args)生成的builder实例默认已经加载了所有默认配置源(包括appsettings.json、对应环境的配置文件、环境变量、命令行参数等),直接通过builder.Configuration即可获取IConfiguration实例,无需额外注册或构造。
替换Redis硬编码配置的具体步骤
1. 先在appsettings.json中增加对应配置项
{ "RedisCache": { "ConnectionString": "localhost:6379" }, // 其他原有配置项 }
2. 修改Program.cs中的服务注册代码
两种常用读取方式二选一即可:
- 方式1:直接按键名读取
builder.Services.AddStackExchangeRedisCache(options => { options.Configuration = builder.Configuration["RedisCache:ConnectionString"]; });
- 方式2:配置节强绑定(适合配置项较多的场景,自动匹配属性名)
builder.Services.AddStackExchangeRedisCache(options => { builder.Configuration.GetSection("RedisCache").Bind(options); });
其他场景补充说明
1. Build管道后访问配置
调用builder.Build()生成app实例后,也可以直接通过app.Configuration访问配置,示例:
var app = builder.Build(); // 管道配置阶段读取配置 var redisConn = app.Configuration["RedisCache:ConnectionString"];
2. 依赖注入使用IConfiguration
IConfiguration默认已经注册到依赖注入容器中,在控制器、自定义服务等类中直接通过构造函数注入即可使用,示例:
[ApiController] [Route("api/[controller]")] public class TestController : ControllerBase { private readonly IConfiguration _config; // 构造函数注入即可自动获取实例 public TestController(IConfiguration config) { _config = config; } [HttpGet("redis-conn")] public IActionResult GetRedisConn() { return Ok(_config["RedisCache:ConnectionString"]); } }
内容的提问来源于stack exchange,提问作者Sajed
相关产品推荐
相关产品推荐

