无法在控制台应用程序中从 appsettings.json 读取连接字符串
Unable to read connection string from appsettings.json in a console application
我正在使用控制台应用程序测试 .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
上得到了 null,我做错了什么?
谢谢
您的代码是正确的。设置 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");
我正在使用控制台应用程序测试 .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
上得到了 null,我做错了什么?
谢谢
您的代码是正确的。设置 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");