Как сослаться на другой ключ в том же appsettings.json - PullRequest
0 голосов
/ 26 марта 2019

Интересно, есть ли способ ссылаться на другой ключ в том же appsettings.json в проекте ASP.NET/Core.

В следующем примере мне интересно, можно ли сослаться на «DBName»"введите" DefaultConnection ", так как они имеют одно и то же значение:

{" DBName ":" MyDbName ",

" ConnectionStrings ": {" DefaultConnection ":" server = localhost; порт= 3306; пользователь = имя пользователя; базы данных = "MyDbName";»}}

1 Ответ

1 голос
/ 26 марта 2019

Нет. Это невозможно. Значения конфигурации - это просто строки. Они не анализируются для таких вещей, как переменные. Я полагаю, вы могли бы обойти это как-то так:

{
    "DBName": "MyDbName",
    "ConnectionStrings": {
        "DefaultConnection": "server=localhost;port=3306;user=username;database={0}"
    }
}

Тогда:

var connectionString = string.Format(Configuration.GetConnectionString("DefaultConnection"), Configuration["DbName"]);

По сути, вы оставляете заполнитель string.Format в фактическом значении строки подключения, а затем заменяете его вручную через ваше DbName значение конфигурации.

Однако это довольно хрупко. Честно говоря, вы не делаете это правильно в первую очередь. Конфигурация может быть переопределена средой. Итак, если вам нужно что-то вроде выключения имени БД, вы, вероятно, находитесь в другой среде и поэтому должны переопределять значение строки подключения через переменную среды или JSON, специфичный для этой среды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...