and then register this object to the asp.net core service collection
here is an example how to do it.
/// Create, bind and register as service the specified configuration parameters
/// </summary>
/// <typeparam name="TConfig">Configuration parameters</typeparam>
/// <param name="services">Collection of service descriptors</param>
/// <param name="configuration">Set of key/value application configuration properties</param>
/// <returns>Instance of configuration parameters</returns>
public static TConfig ConfigureStartupConfig<TConfig>(this IServiceCollection services, IConfiguration configuration) where TConfig : class, new()
{
if (services == null)
{
throw new ArgumentNullException(nameof(services));
}
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}
//create instance of config
TConfig config = new TConfig();
//bind it to the appropriate section of configuration
configuration.Bind(config);
//and register it as a service
services.AddSingleton(config);
return config;
}
this will do it.
/// </summary>
/// <typeparam name="TConfig">Configuration parameters</typeparam>
/// <param name="services">Collection of service descriptors</param>
/// <param name="configuration">Set of key/value application configuration properties</param>
/// <returns>Instance of configuration parameters</returns>
public static TConfig ConfigureStartupConfig<TConfig>(this IServiceCollection services, IConfiguration configuration) where TConfig : class, new()
{
if (services == null)
{
throw new ArgumentNullException(nameof(services));
}
if (configuration == null)
{
throw new ArgumentNullException(nameof(configuration));
}
//create instance of config
TConfig config = new TConfig();
//bind it to the appropriate section of configuration
configuration.Bind(config);
//and register it as a service
services.AddSingleton(config);
return config;
}