// Copyright (c) Microsoft. All rights reserved. using System.ComponentModel.DataAnnotations; using Microsoft.Extensions.Configuration; namespace StepwisePlannerMigration.Extensions; /// /// Class with extension methods for app configuration. /// public static class ConfigurationExtensions { /// /// Returns if it's valid or throws . /// public static TOptions GetValid(this IConfigurationRoot configurationRoot, string sectionName) { var options = configurationRoot.GetSection(sectionName).Get()!; Validator.ValidateObject(options, new(options)); return options; } }