using Microsoft.Extensions.Configuration; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Options; namespace Ping.Application.Configuration { public static class ConfigurationDependencyInjection { public static IServiceCollection AddValidatedOptions( this IServiceCollection services, IConfiguration configuration, string sectionName) where T : class { services .AddOptionsWithValidateOnStart() .Bind(configuration.GetRequiredSection(sectionName)) .ValidateDataAnnotations(); services.AddSingleton(serviceProvider => serviceProvider.GetRequiredService>().Value); return services; } } }