Вот моя программа:
public class Program
{
public static void Main(string[] args)
{
CreateWebHostBuilder(args).Build()
.Run();
}
public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>();
}
Ничего особенного.
В appsettings.json
файле У меня есть настройка:
{
"Integrations" : {
"Pipedrive" : {
"ApiToken" : "some value"
...
}
}
}
Я также установил переменнуюASPNETCORE_INTEGRATIONS__PIPEDRIVE__APITOKEN
.
Если я удаляю ключ из файла appsettings.json
, Конфигурация возвращает мне то же значение, что и переменная среды.
Однако, если ключ существует в файле настроек, я получаю значение изфайл.
Более того, я вижу, что EnvironmentVariablesConfigurationProvider
идет после JsonConfigurationProvider
.
И самое странное здесь то, что когда я пытаюсь ввести Immediate Window
:
Configuration.GetValue<string>("ASPNETCORE_Integrations:Pipedrive:ApiToken");
Я получаю значение, присвоенное переменной среды.
Может кто-нибудь объяснить мне, почему в одном случае префикс ASPNETCORE_
игнорируется, а в другом - нет.
Я не настраиваюКонфигурация хоста или приложения явно.