Получение настроек конфигурации ConnectionStrings из appsettings.json - PullRequest
0 голосов
/ 25 апреля 2018

В моем классе репозитория у меня есть объект 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.

enter image description here

Ответы [ 2 ]

0 голосов
/ 25 апреля 2018

Конфигурационный API предоставляет метод расширения для IConfiguration для упрощения чтения ConnectionStrings раздела:

// using Microsoft.Extensions.Configuration;

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

что он делает return configuration?.GetSection("ConnectionStrings")?[name];

0 голосов
/ 25 апреля 2018

Кажется, проблема заключается в пути строки, которую вы передаете методу GetSection ().Согласно документации конфигурации ядра ASP.NET вы должны использовать «ConnectionStrings: myConnectionString» вместо «ConnectionStrings.myConnectionString».

Plus, если вы хотите получить значение напрямую, вы можете предпочестьвместо этого использовать метод GetValue ():

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

Если вы предпочитаете, вы также можете использовать индексную нотацию как:

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

Но, честно говоря, первый подход более чистый иэлегантный, так как метод GetValue () позволяет указать значение по умолчанию в случае, если свойство не найдено в конфигурации.

...