Связывание конфигурации из JSON с моделью в ASP.NET .
Как удобнее использовать конфигурацию из appsettings.json в ASP.NET
Допустим, есть такая секция в appsettings.json:
"SomeApp": {
"Token": "***",
"Secret": "***"
}Как её удобнее внедрить в DI, чтобы потом использовать её объект напрямую, без использования IOptions
Объявим класс для этой конфигурации с авто-свойствами:
public class SomeAppConfiguration
{
public required string Token { get; set; }
public required string Secret { get; set; }
}Спарсим её, используя стандартные средства чтения конфигурации из Microsoft.Extensions.Configuration:
builder.Services.Configure<SomeAppConfiguration>(builder.Configuration.GetRequiredSection("SomeApp"));А затем, использовав добавленный в DI этим вызовом IConfiguration<SomeAppConfiguration>, добавим ещё и просто SomeAppConfiguration:
builder.Services.AddSingleton(resolver => resolver.GetRequiredService<IOptions<SomeAppConfiguration>>().Value);Теперь можно, например, используя MinimalAPI получать доступ к конфигурации так:
app.MapGet((SomeAppConfiguration config) => {});