无法从控制台应用程序中的appsettings.json读取连接字符串

时间:2016-10-29 04:20:09

标签: c# .net-core

我正在使用控制台应用程序来使用.NET核心,而我仍然坚持从appsettings.json阅读。 这是我的代码:

{
    "ConnectionStrings": {
        "DataBaseConnectionString": "Server=xxxxxx"
        }
}

...

var builder = new ConfigurationBuilder()
    //  .SetBasePath("")
    .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
    .AddEnvironmentVariables();
configuration = builder.Build();

var xx = configuration.GetConnectionString("DataBaseConnectionString");

xx上的空格,我做错了什么? 感谢

2 个答案:

答案 0 :(得分:2)

您的代码是正确的。设置optional: false以检查文件是否存在。控制台应用的关键点是确保appsettings.json具有Copy to output directory: Always属性。

这是一个可重复性最小的例子:

//set "optional: false" to fail-fast without a file
var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false);
var configuration = builder.Build();

//contains "Server=xxxxxx"
string str = configuration.GetConnectionString("DataBaseConnectionString");

实际文档:Configuration in ASP.NET Core

答案 1 :(得分:0)

尝试:

var xx=configuration.GetConnectionString("ConnectionStrings:DataBaseConnectionString");

看起来你将DataBaseConnectionString嵌套在ConnectionStrings段中。

为了使您的代码按照现在的方式工作,您的appsettings需要如下所示:

{
   "DataBaseConnectionString": "Server=xxxxxx"
}

https://docs.asp.net/en/latest/fundamentals/configuration.html