You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Program.cs中以类型安全方式获取appsettings.json配置值

用强类型类实现配置的类型安全访问

当然可以,通过创建对应配置节的强类型类,能实现编译时的类型检查,重命名配置节或属性时会直接触发编译错误,不会等到运行时才暴露问题,同时还能获得代码提示,让配置管理更规范易维护。

具体实现步骤:

  1. 创建强类型配置类
    新建一个FluentApiSettings类,属性名和类型要和appsettings.json里的配置完全对应:

    public class FluentApiSettings
    {
        public int TimeOutInSeconds { get; set; }
        // 如果还有其他配置项,直接在这里添加对应属性即可
    }
    
  2. 绑定配置到强类型类
    在Program.cs里,把配置节绑定到这个类上,有两种常用方式:

    • 如果需要依赖注入使用(比如在服务、控制器里):
      var builder = WebApplication.CreateBuilder(args);
      // 绑定配置并注册到DI容器
      builder.Services.Configure<FluentApiSettings>(builder.Configuration.GetSection("FluentApiSettings"));
      
    • 如果只是在Program.cs内部直接使用:
      var builder = WebApplication.CreateBuilder(args);
      // 直接绑定到实例
      var fluentApiSettings = builder.Configuration.GetSection("FluentApiSettings").Get<FluentApiSettings>();
      // 直接访问属性
      var timeoutInSeconds = fluentApiSettings.TimeOutInSeconds;
      
  3. 在依赖注入场景中使用
    比如在控制器或服务里,通过IOptions<FluentApiSettings>注入并访问配置:

    public class SomeService
    {
        private readonly int _timeoutInSeconds;
    
        public SomeService(IOptions<FluentApiSettings> settings)
        {
            _timeoutInSeconds = settings.Value.TimeOutInSeconds;
        }
    
        // 业务逻辑中使用_timeoutInSeconds
    }
    

为什么这能解决你的问题?

  • 编译时检查:如果重命名FluentApiSettings类,或者TimeOutInSeconds属性,代码会直接编译失败,不会出现运行时找不到配置的情况。
  • 代码提示:编写代码时IDE会自动提示类的属性,避免手动输入字符串写错的问题。
  • 可扩展性:后续新增配置项,只需要在类里添加对应属性即可,无需修改多处字符串引用。

内容的提问来源于stack exchange,提问作者Denys Wessels

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 15:17:04