#c# #.net-core #azure-app-configuration
Вопрос:
Возможно ли считывать значения из appsettings.json перед конфигурацией.build ?
мне нужно получить конечную точку, идентификатор клиента, секрет и клиента для привязки конфигурации к конфигурации приложения azure
Configuration = builder.AddAzureAppConfiguration(options =>
{
//here i need to get some values from appsettings.json
}).Build()
Ответ №1:
Я не уверен в этом, так как обычно использую WebHostBuilder, но я думаю, что это должно быть что-то вроде:
var settings = builder.Build();
Configuration = builder.AddAzureAppConfiguration(options =>
{
options.Connect(settings["ConnectionStrings:AppConfig"])
}).Build();
правка: примечание.Я предполагал, что вы уже добавили файл appsettings. json в конструктор. Если нет, вам нужно добавить
var env = [something like]hostingContext.HostingEnvironment;
config.AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true);
Ответ №2:
Вы можете использовать a ConfigurationBuilder
как таковой:
var builder = new ConfigurationBuilder()
.SetBasePath("yourJsonPath")
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
var config = builder.Build();
затем вы можете получить нужное вам значение:
config.GetSection("AppConfig:Endpoint").Value
или просто
config.GetSection("ClientId").Value
В зависимости от того, как построен ваш JSON.
Ответ №3:
Это невозможно.
Вот два примера сценария, аналогичного вашему, в примере конфигурации приложения Azure на GitHub:
Консольное приложение
В примере показано, что ConfigurationBuilder
он создан для получения промежуточного IConfiguration
звена, которое затем используется для предоставления строки подключения для добавления конфигурации приложения Azure в конструктор.
ASP.NET Основное Веб-Приложение
В ASP.NET Пример основного веб-приложения тот же шаблон используется с предоставленной платформой IConfigurationBuilder