在我的存储库类中,我有我的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
。
答案 0 :(得分:1)
Configuration API为IConfiguration
提供了扩展方法,以简化阅读ConnectionStrings
部分:
// using Microsoft.Extensions.Configuration;
string connectionString = _config.GetConnectionString("myConnectionString");
what it does is return configuration?.GetSection("ConnectionStrings")?[name];
答案 1 :(得分:-1)
问题似乎在于您传递给GetSection()方法的字符串路径。根据{{3}}你应该使用" ConnectionStrings:myConnectionString"而不是" ConnectionStrings.myConnectionString"。
另外,如果您希望直接检索该值,则可能更喜欢使用GetValue()方法:
var cs = _config.GetValue("ConnectionStrings:myConnectionString", "");
如果您愿意,还可以使用索引表示法:
var cs = _config["ConnectionStrings:myConnectionString"];
但老实说,我发现第一种方法更加干净和优雅,因为GetValue()方法允许您在配置中找不到属性时指定默认值。