Считывание значений из appsettings.json перед настройкой.сборка

#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:

Консольное приложение

https://github.com/Azure/AppConfiguration-DotnetProvider/blob/e227b0b454370751c2ddbebb143fd6e02a07c47b/examples/ConsoleApplication/Program.cs#L36

В примере показано, что ConfigurationBuilder он создан для получения промежуточного IConfiguration звена, которое затем используется для предоставления строки подключения для добавления конфигурации приложения Azure в конструктор.

ASP.NET Основное Веб-Приложение

https://github.com/Azure/AppConfiguration-DotnetProvider/blob/e227b0b454370751c2ddbebb143fd6e02a07c47b/examples/ConfigStoreDemo/Program.cs#L26

В ASP.NET Пример основного веб-приложения тот же шаблон используется с предоставленной платформой IConfigurationBuilder