Many devs struggle with strongly-typed configuration returning null unexpectedly.
🔥 Main Causes
-
Missing
services.Configure<T>() -
Wrong section name
-
Mistyped property names
-
Missing getters/setters
-
Nested classes not matching JSON structure
✔ The Correct Pattern
builder.Services.Configure<MySettings>(
builder.Configuration.GetSection("MySettings"));
public class MySettings
{
public string ApiKey { get; set; }
}
✔ But Here’s the Hidden Trick
Add validation to avoid silent nulls:
builder.Services.AddOptions<MySettings>()
.Bind(builder.Configuration.GetSection("MySettings"))
.ValidateDataAnnotations()
.ValidateOnStart();
Your app now fails at startup → no mysterious null surprises.
