.NET 6最小API中注册Singleton时如何获取IConfiguration?
.NET 6最小API注册Singleton服务时获取配置值的方法
你可以通过工厂委托中的provider参数获取IConfiguration实例,因为WebApplicationBuilder默认已将IConfiguration注册到服务容器中,直接解析即可读取配置:
builder.Services.AddSingleton<MyService>((provider) => { // 从服务提供者获取配置实例 var configuration = provider.GetRequiredService<IConfiguration>(); // 读取单个配置值(示例:读取appsettings.json中MyServiceConfig:ApiUrl节点) var apiUrl = configuration["MyServiceConfig:ApiUrl"]; // 若配置项较多,推荐绑定到实体类(需先定义对应实体) // var serviceSettings = configuration.GetSection("MyServiceConfig").Get<MyServiceSettings>(); // 传入配置值实例化MyService return new MyService(apiUrl); });
补充说明
WebApplicationBuilder初始化时已自动完成IConfiguration的注册,无需额外操作就能在服务解析链中获取到配置对象。- 使用配置实体类绑定的方式能获得类型安全的配置访问,避免硬编码配置路径的错误。
内容的提问来源于stack exchange,提问作者PassionateDeveloper
相关产品推荐
相关产品推荐

