Tooluck logoTooluck
SKILL.md

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)

skills/microsoft-extensions-configuration/SKILL.md

MITFull file
1# Microsoft.Extensions Configuration Patterns
2
3## When to Use This Skill
4
5Use this skill when:
6- Binding configuration from appsettings.json to strongly-typed classes
7- Validating configuration at application startup (fail fast)
8- Implementing complex validation logic for settings
9- Designing configuration classes that are testable and maintainable
10- Understanding IOptions<T>, IOptionsSnapshot<T>, and IOptionsMonitor<T>
11
12## Reference Files
13
14- [advanced-patterns.md](advanced-patterns.md): Validators with dependencies, named options, complete production example (AkkaSettings), and testing validators
15
16## Why Configuration Validation Matters
17
18**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.
19
20**The Solution:** Validate configuration at startup. If invalid, fail immediately with a clear error message.
21
22```csharp
23// BAD: Fails at runtime when someone tries to use the service
24public class EmailService
25{
26 public EmailService(IOptions<SmtpSettings> options)
27 {
28 var settings = options.Value;
29 // Throws NullReferenceException 10 minutes into production
30 _client = new SmtpClient(settings.Host, settings.Port);
31 }
32}
33
34// GOOD: Fails at startup with clear error
35// "SmtpSettings validation failed: Host is required"
36```
37
38---
39
40## Pattern 1: Basic Options Binding
41
42### Define a Settings Class
43…

Excerpt shown under the repository's MIT license.

More skills in dotnet-skills

Newsletter

Join the Community

Subscribe to our newsletter for the latest news and updates