1

在我的存储库类中,我有我的 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.

在此处输入图像描述

4

2 回答 2

1

配置 API 提供IConfiguration了简化阅读ConnectionStrings部分的扩展方法:

// using Microsoft.Extensions.Configuration;

string connectionString = _config.GetConnectionString("myConnectionString");

它的作用是 return configuration?.GetSection("ConnectionStrings")?[name];

于 2018-04-25T06:42:59.480 回答
0

问题似乎在于您传递给 GetSection() 方法的字符串路径。根据ASP.NET Core 配置文档,您应该使用“ConnectionStrings:myConnectionString”而不是“ConnectionStrings.myConnectionString”。

另外,如果您希望直接检索值,您可能更喜欢使用 GetValue() 方法:

var cs = _config.GetValue("ConnectionStrings:myConnectionString", "");

如果您愿意,还可以将索引表示法用作:

var cs = _config["ConnectionStrings:myConnectionString"];

但老实说,我发现第一种方法更简洁优雅,因为 GetValue() 方法允许您指定默认值,以防在配置中找不到该属性。

于 2018-04-24T22:44:18.373 回答