Как загрузить раздел конфигурации в пользовательский объект с помощью HostBuilder в веб-задании Azure - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь понять, чего мне не хватает в этом фрагменте кода. Я создаю веб-задание Azure, которое надеюсь развернуть в Azure, но мне нужно загрузить часть JSON из моего файла appsettings.json в созданный мной объект клиента. У меня, кажется, нет метода GetSection, доступного для объекта builder, и я не понимаю, чего мне не хватает, чтобы я мог сопоставить раздел конфигурации с моим классом HostOptions (POCO, принимающийраздел конфигурации).

Вот мой код, я использую .NET Core 3.0.

private static void Main(string[] args)
{
    var builder = new HostBuilder()
        .ConfigureWebJobs(config =>
        {
            config.AddTimers();
            config.AddAzureStorageCoreServices();
        })
        .ConfigureAppConfiguration((builderContext, config) =>
        {
            config.AddJsonFile("appsettings.json", optional: true);
            config.AddJsonFile($"appsettings.{builderContext.HostingEnvironment.EnvironmentName}.json", optional: true);
            config.AddEnvironmentVariables();
        })
        .ConfigureServices(services =>
        {
            // Some IoC mappings...
        })
        .Build();

    builder.Run();
}

1 Ответ

1 голос
/ 21 октября 2019

Используйте перегрузку для IWebHostBuilder.ConfigureServices

   .ConfigureServices((builderContext, services) => {
        IConfiguration configuration = builderContext.Configuration;
        HostOptions options = configuration.GetSection("MySection").Get<HostOptions>();

        services.AddSingleton(options);

        // Some IoC mappings...
    })
...