microsoft-extensions-configuration
Agent skill fromAaronontheweb/dotnet-skills
Microsoft.Extensions.Options patterns including IValidateOptions, strongly-typed settings, validation on startup, and the Options pattern for clean configuration management.
How to install microsoft-extensions-configuration
install microsoft-extensions-configuration
# install the dotnet-skills pack with the skills CLI
npx skills add Aaronontheweb/dotnet-skills# or add only this skill to Claude Code: copy the folder
skills/microsoft-extensions-configuration/
# into
~/.claude/skills/microsoft-extensions-configuration/ (all projects)
.claude/skills/microsoft-extensions-configuration/ (one project)
1# Microsoft.Extensions Configuration Patterns23## When to Use This Skill45Use this skill when:6- Binding configuration from appsettings.json to strongly-typed classes7- Validating configuration at application startup (fail fast)8- Implementing complex validation logic for settings9- Designing configuration classes that are testable and maintainable10- Understanding IOptions<T>, IOptionsSnapshot<T>, and IOptionsMonitor<T>1112## Reference Files1314- [advanced-patterns.md](advanced-patterns.md): Validators with dependencies, named options, complete production example (AkkaSettings), and testing validators1516## Why Configuration Validation Matters1718**The Problem:** Applications often fail at runtime due to misconfiguration - missing connection strings, invalid URLs, out-of-range values. These failures happen deep in business logic, far from where configuration is loaded.1920**The Solution:** Validate configuration at startup. If invalid, fail immediately with a clear error message.2122```csharp23// BAD: Fails at runtime when someone tries to use the service24public class EmailService25{26 public EmailService(IOptions<SmtpSettings> options)27 {28 var settings = options.Value;29 // Throws NullReferenceException 10 minutes into production30 _client = new SmtpClient(settings.Host, settings.Port);31 }32}3334// GOOD: Fails at startup with clear error35// "SmtpSettings validation failed: Host is required"36```3738---3940## Pattern 1: Basic Options Binding4142### Define a Settings Class43…
Excerpt shown under the repository's MIT license.
