从 appsettings.json 获取 ConnectionStrings 配置设置
Getting ConnectionStrings config settings from appsettings.json
在我的存储库 class 中,我有我的 Config 对象,看起来我的连接字符串位于:
Config > Providers > Microsoft.Configuration.Json.JsonConfigurationProvider > Data > ConnectionStrings.myConnectionString
这是我的 appsettings.json
的样子:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"myConnectionString": details..."
}
}
我正在尝试按以下方式阅读 myConnectionString
,但它不起作用:
var cs = _config.GetSection("ConnectionStrings.myConnectionString").value;
我做错了什么?
更新:
出于某种原因,我没有看到 GetValue()
方法。我正在使用 ASP.NET Core 2.0
.
问题似乎出在您传递给 GetSection() 方法的字符串路径中。根据 ASP.NET Core Configuration documentation 你应该使用 "ConnectionStrings:myConnectionString" 而不是 "ConnectionStrings.myConnectionString".
此外,如果您希望直接检索值,您可能更愿意使用 GetValue() 方法:
var cs = _config.GetValue("ConnectionStrings:myConnectionString", "");
如果愿意,您也可以使用索引表示法:
var cs = _config["ConnectionStrings:myConnectionString"];
但老实说,我发现第一种方法更简洁优雅,因为 GetValue() 方法允许您指定默认值,以防在配置中找不到 属性。
配置API为IConfiguration
提供扩展方法以简化阅读ConnectionStrings
部分:
// using Microsoft.Extensions.Configuration;
string connectionString = _config.GetConnectionString("myConnectionString");
what it does is return configuration?.GetSection("ConnectionStrings")?[name];
在我的存储库 class 中,我有我的 Config 对象,看起来我的连接字符串位于:
Config > Providers > Microsoft.Configuration.Json.JsonConfigurationProvider > Data > ConnectionStrings.myConnectionString
这是我的 appsettings.json
的样子:
{
"Logging": {
"IncludeScopes": false,
"LogLevel": {
"Default": "Warning"
}
},
"ConnectionStrings": {
"myConnectionString": details..."
}
}
我正在尝试按以下方式阅读 myConnectionString
,但它不起作用:
var cs = _config.GetSection("ConnectionStrings.myConnectionString").value;
我做错了什么?
更新:
出于某种原因,我没有看到 GetValue()
方法。我正在使用 ASP.NET Core 2.0
.
问题似乎出在您传递给 GetSection() 方法的字符串路径中。根据 ASP.NET Core Configuration documentation 你应该使用 "ConnectionStrings:myConnectionString" 而不是 "ConnectionStrings.myConnectionString".
此外,如果您希望直接检索值,您可能更愿意使用 GetValue() 方法:
var cs = _config.GetValue("ConnectionStrings:myConnectionString", "");
如果愿意,您也可以使用索引表示法:
var cs = _config["ConnectionStrings:myConnectionString"];
但老实说,我发现第一种方法更简洁优雅,因为 GetValue() 方法允许您指定默认值,以防在配置中找不到 属性。
配置API为IConfiguration
提供扩展方法以简化阅读ConnectionStrings
部分:
// using Microsoft.Extensions.Configuration;
string connectionString = _config.GetConnectionString("myConnectionString");
what it does is return configuration?.GetSection("ConnectionStrings")?[name];