C# strongly typed IConfiguration
wrapper
$> dotnet add package Phema.Configuration
Usage (or check for examples)
[Configuration]
public class RootConfiguration
{
public InnerConfiguration Inner { get; set; }
}
[Configuration]
public class InnerConfiguration
{
}
// Add
var configuration = services.AddConfiguration<RootConfiguration>(Configuration);
// Get or inject with DI
var root = provider.GetRequiredService<IOptions<RootConfiguration>>().Value;
var inner = provider.GetRequiredService<IOptions<InnerConfiguration>>().Value;
- To add configuration call
AddConfiguration<T>
onIServiceCollection
- Mark all your configuration parts with
ConfigurationAttribute
to inclute in configuration tree ConfigurationAttribute
works both on type and property declaration- All configuration parts adds to
IServiceCollection
recursively. You can resolve them in app callingIServiceProvider
or inject using DI