Как преобразовать конфигурацию в IOptions? - PullRequest
0 голосов
/ 18 октября 2019

Я читал много статей об этом, но все они, кажется, упускают ключевые моменты, а точнее момент превращения объекта IConfiguration в TheirStronglyTypedConfiguration объект, так что это выглядит как магия.

В моем проекте .NET Core (тестовый проект NUnit) у меня есть appsettings.json:

{
  "Configuration": {
    "HomePageUrl": "https://homepage.com"
  }
}

Я загружаю его перед всеми тестами:

[BeforeTestRun]
public static void LoadConfiguration()
{
    IConfiguration config = new ConfigurationBuilder()
                            .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true)
                            .Build();
}

Вопрос: но как преобразовать его в строго типизированный объект, который будет иметь строковое свойство HomePageUrl?

РЕДАКТИРОВАТЬ:

Я пытаюсь это:

IConfiguration config = new ConfigurationBuilder()
                                    .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
                                    .Build();
            config.GetSection("").Bind

но яне имеют Bind метода.

1 Ответ

0 голосов
/ 18 октября 2019

Синтаксис для привязки модели изменен с RC1 на RC2.

Вам необходимо привязать класс настроек к вашей конфигурации, которая вам нужна в методе ConfigureServices файла Startup.cs:

public void ConfigureServices(IServiceCollection services)
{
    services.Configure<MySettings>(options => Configuration.GetSection("MySettings").Bind(options));
}
...