Как получить настройки в промежуточном программном обеспечении? - PullRequest
0 голосов
/ 14 декабря 2018

Я уверен, что это должен быть дубликат, но я слишком долго искал и все еще не могу найти ответ.

Я хочу получить доступ к параметрам конфигурации (из файла json, хотя я не думаю, что источник имеет значение в отношении моего вопроса) отсюда:

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        app.Run(async context =>
        {
            // Get my config values here and do something with them
            await Task.CompletedTask;
        });
    }

Я мог бы использовать var x = Config.GetValue<string>("AppSettings:MySetting:0");, но, поскольку это список, я должен был бы создать цикл и получать значения доЯ получаю нулевое значение и все такое, поэтому я бы предпочел сделать IOptions, чтобы он загружал его в строго типизированный класс для меня.У меня есть этот код в ConfigureServices:

services.AddOptions();
services.Configure<AppSettings>(Config.GetSection("AppSettings"));

, но я просто не знаю, как добраться до объекта, который там зарегистрирован из метода Configure.

Я также попытался проверить значение Config.GetSection("AppSettings") во время отладки и обнаружил, что в провайдере json я могу видеть свои настройки.Однако, хотя это доступно в инспекторе, я не вижу, как получить прямой доступ к своему списку.То есть я могу получить доступ к своему списку по одному значению за раз, используя GetValue (), но не могу просто получить доступ ко всему списку как к одному значению.

1 Ответ

0 голосов
/ 14 декабря 2018

Как часто кажется, я наконец-то понял, что искал, сразу после того, как сделал пост здесь.По сути, мне не нужны IOptions или что-либо еще, связанное с DI для моего сценария.Мне просто нужно было использовать .Bind(), чтобы привязать настройки к экземпляру моего класса:

AppSettings a = new AppSettings();
Config.GetSection("AppSettings").Bind(a);
...