如何在控制台应用中读取appsettings.json?配置取值始终返回null
解决appsettings.json配置值读取返回null的问题
针对你遇到的配置读取返回null的情况,可按以下步骤排查解决:
1. 检查appsettings.json的复制输出设置
右键项目中的appsettings.json文件,选择属性,将复制到输出目录设置为如果较新则复制或始终复制。如果文件没有被复制到程序运行的输出目录,配置构建器会找不到文件,自然读取不到值。
2. 确保配置文件路径正确
当前代码中使用相对路径加载配置文件,若程序运行的工作目录不是项目根目录,会导致找不到文件。可以改用基于程序基目录的绝对路径:
IConfiguration config = new ConfigurationBuilder() .AddJsonFile(Path.Combine(AppContext.BaseDirectory, "appsettings.json"), true, true) .Build();
3. 验证配置文件的JSON语法
检查appsettings.json是否存在语法错误,比如缺失引号、多余逗号等。你的示例JSON看起来是合法的,但如果实际文件有语法问题,配置加载会失败,导致读取值为null。
4. 确认配置加载是否成功
可以在Main方法中先尝试读取值,排查是配置加载的问题还是Executor类中的问题:
IConfiguration config = new ConfigurationBuilder() .AddJsonFile("appsettings.json", true, true) .Build(); // 在这里先测试读取 var testUrl = config.GetValue<string>("smdbapi_url"); Console.WriteLine(testUrl); // 看是否能输出正确值
如果Main中能读到值,再检查Executor类中是否有其他逻辑覆盖了_config变量,或者是否在使用_config前有其他操作导致配置失效。
内容的提问来源于stack exchange,提问作者John Butler
相关产品推荐
相关产品推荐

