После добавления services.Configure<KindSettings>
вы можете добавить конфигурацию через DI, добавив в свой конструктор.
IOptionsSnapshot<KindSettings> kindSettingsConfiguration
или
IOptions<KindSettings> kindSettingsConfiguration
Разница в том, что IOptionsSnapshot
будет отражать живойизменения в вашем конфигурационном файле, в то время как IOptions
предназначен для использования в одиночном режиме.
Редактировать после комментария:
Допустим, ваш файл конфигурации выглядит следующим образом:
{
"Kind1":
{"attr1":"val11"},
{"attr2":"val12"},
"Kind2":
{"attr1":"val21"},
{"attr2":"val22"},
}
КомуЧтобы успешно связать это, вам понадобятся два класса конфигурации
public class Kind1Configuration
{
public string Attr1 { get; set; }
public string Attr2 { get; set; }
}
public class Kind2Configuration
{
public string Attr1 { get; set; }
public string Attr2 { get; set; }
}
. Как уже говорилось ранее, для соединения точек просто добавьте
public void ConfigureServices(IServiceCollection services)
{
services.Configure<Kind1Configuration>(Configuration.GetSection("Kind1"));
services.Configure<Kind2Configuration>(Configuration.GetSection("Kind2"));
}
. Чтобы использовать это в контроллере, добавьте свои IOptions вконструктор
public class TestController(IOptionsSnapshot<Kind1Configuration> kindSettingsConfiguration)
{
Kind1Configuration configuration = kindSettingsConfiguration.Value;
}
Надеюсь, это поможет.