A flexible configuration provider for real-time updates in .NET applications
$ dotnet add package Soenneker.Config.Realtime
Soenneker.Config.Realtime: as a separator (e.g., AppSettings:FeatureFlag).IConfiguration consumers.dotnet add package Soenneker.Config.Realtime
You just need access to IServiceCollection and IBuilderConfiguration:
serviceCollection.AddRealtimeConfiguration(builderConfiguration);This is just one example:
var builder = WebApplication.CreateBuilder(args);
// Add and register the RealtimeConfigurationProvider in one step
builder.Services.AddRealtimeConfiguration(builder.Configuration);
var app = builder.Build();public class MyService
{
private readonly IRealtimeConfigurationProvider _configProvider;
private readonly IConfiguration _config;
// Simply inject IRealtimeConfigurationProvider:
public MyService(IRealtimeConfigurationProvider configProvider, IConfiguration config)
{
_configProvider = configProvider;
_config = config;
}
public void SetKeyDynamically()
{
// Make your updates
_configProvider.Set("SomeKey", "SomeValue");
}
public void ReadUpdatedValue()
{
// IConfiguration is now updated
string newValue = _config["SomeKey"]; // Outputs: "SomeValue"
}
}