The TaskHub.Shared.ConfigurationTools module provides extension methods for IConfigurationSection to simplify and safely retrieve configuration values.
The Selectors static class provides methods to get values with built-in validation. If a required value is missing or empty, it throws an InvalidOperationException.
GetString(this IConfigurationSection section, string name): Returns the string value or throws if missing.GetBool(this IConfigurationSection section, string name): Returns the boolean value.GetInt(this IConfigurationSection section, string name): Returns the integer value.public class MyServiceOptions
{
public string ApiKey { get; init; }
public int TimeoutSeconds { get; init; }
public MyServiceOptions(IConfiguration configuration)
{
var section = configuration.GetSection("MyService");
ApiKey = section.GetString("ApiKey");
TimeoutSeconds = section.GetInt("TimeoutSeconds");
}
}
Modules in TaskHub.Shared typically follow this schema in appsettings.json:
{
"Module": {
"Enabled": true,
"OptionA": "Value",
"OptionB": 123
}
}
Enabled: Often used in Bootstrap classes to conditionally register services.Selectors are used, a missing field that is requested via GetString will cause the application to fail during startup (Fail-Fast principle).