Я немного поигрался с Azure Конфигурация приложения .
Вот пример конфигурации:
var environmentVariable = Environment.GetEnvironmentVariable("AppConfigurationConnectionString");
var config =
new ConfigurationBuilder()
.AddAzureAppConfiguration(options =>
{
options.Connect(environmentVariable)
.ConfigureKeyVault(kv =>
{
kv.SetCredential(new DefaultAzureCredential());
});
})
.Build();
services.AddSingleton<IConfiguration>(config);
После этого я могу ввести IConfiguration
экземпляр в мои службы и использовать _config["settingName"]
для доступа к настройкам конфигурации. Все это работает хорошо и действительно довольно хорошо.
Одна вещь, которую я не знаю, как это сделать, - это сопоставить группы связанных параметров со строго типизированным объектом (то есть без необходимости делать все это вручную , что я мог бы сделать, но ... надеясь, что есть лучший способ).
В обычной конфигурации ядра ASP. NET я могу сгруппировать соответствующие настройки параметров следующим образом ( то есть в appsettings.json
)
{
"test": {
"key1": "value1",
"key2": "value2"
}
}
с использованием шаблона IOptions следующим образом:
services.Configure<Test>(config.GetSection("test"));
, который позволяет мне внедрять строго типизированный экземпляр IOptions<Test>
в мои классы. IMO, это немного лучше, чем большой плоский индексатор, где я использую _config["key1"]
для получения настроек конфигурации.
Есть ли подход для Azure Конфигурирование приложения, чтобы позволить мне автоматически настраивать строго типизированные объекты конфигурации что может быть введено в мои классы?
TIA