У меня есть приложение .net core 2.0 с несколькими файлами настроек. У меня есть appsettings.json, appsettings.Development.json и пользовательский appsettings.Secure.json.
//appSettings.json
{
"AzureAd" : {
"ClientId" : "CID"
}
}
//appSettings.Development.json
{
"AzureAd" : {
"Random" : "random2"
}
}
//appSettings.Secure.json
{
"AzureAd" : {
"ClientSecret" : "CSECRET"
}
}
Я всегда хочу, чтобы мои конфиги appSettings.Secure.json были загружены. Вот как настроены файлы json.
var config = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appSettings.json", optional : false)
.AddJsonFile("appSettings.Development.json")
.AddJsonFile("appsettings.Secure.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables()
.Build();
Проблема заключается в том, что мой «AzureAd: ClientSecret» загружается в конфигурации (отображается в разделе «Поставщики» объекта конфигурации), но когда я внедряю IOption, свойство ClientSecret имеет значение null.
AzureAdOptions - это класс, которому сопоставляются свойства, и он регистрируется следующим образом:
services.Configure<AzureAdOptions>(Configuration.GetSection("AzureAd"));