Подтвердить что ты не робот

Как мы используем CloudConfigurationManager с конфигурациями asp.net 5 JSON?

Asp.net 5 имеет новую конфигурационную систему, которая использует json файлы для настроек. Вам нужно вручную выбрать файл json, который вы хотите загрузить в качестве вашей конфигурации, с помощью метода .AddJsonFile(string fileName) нового класса Configuration.

Между тем, на Лазурной земле у нас есть этот отличный CloudConfigurationManager класс, который должен обрабатывать настройки захвата с помощью параметров Azure Website или активного web.config, если параметр Azure не найден.

Но как эти две вещи собираются работать вместе? У меня возникли проблемы с поиском документации. Я хотел бы управлять своими настройками в Azure для производства, но использовать config.json для локальной отладки. У меня было много проблем с поиском каких-либо примеров или документации.

4b9b3361

Ответ 1

Ну, оказывается, что когда дело доходит до использования CloudConfigurationManager с asp.net 5, ответ заключается в том, что вы не, и шаблонный код уже покрыл его. (Спасибо Скотту Хансельману за то, что он вернулся ко мне на твиттер)

Таким образом, стандартный подход выглядит примерно так:

IConfiguration configuration = new Configuration()
  .AddJsonFile("config.json") // adds settings from the config.json file
  .AddEnvironmentVariables(); // adds settings from the Azure WebSite config

Порядок, в котором они вызывается, означает, что настройки из переменных среды будут переназначать параметры из локальной конфигурации. Все, что вам нужно сделать, чтобы использовать это, - это убедиться, что параметры Azure будут имитировать ваши настройки Json, поэтому, если ваш json файл выглядит как

{
  "AppSettings": {
    "ConnectionString": "blahblahblah"
  }
}

Вы хотите настроить свою настройку в лазури, чтобы выглядеть как

Key: AppSettings:ConnectionString 
Value: blahblahblah

а затем вы можете использовать тот же самый код, который будет использоваться для локальной конфигурации.

var connectionString = Configuration.Get("AppSettings:ConnectionString");