Copied from How to add more configuration files to a web application?
- appsettings.json
- appsettings{Environment}.json
- Environment variables
- Command line arguments
var builder = WebApplication.CreateBuilder(args);
builder.Configuration.InsertBefore(c =>
{
c.AddJsonFile("MyInitialSource.json", optional: true);
});
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
public static class ConfigurationExtensions
{
public static ConfigurationManager InsertBefore(this ConfigurationManager config, Action<ConfigurationManager> action)
{
// Get all existing sources and make a copy
var existing = config.Sources.ToArray();
// Clear theses sources
config.Sources.Clear();
// Mutate configuration
action(config);
// Add the older sources back
foreach (var s in existing)
{
config.Sources.Add(s);
}
return config;
}
}var builder = WebApplication.CreateBuilder(args);
builder.Configuration.InsertBefore(c =>
{
c.AddJsonFile("MyInitialSource.json", optional: true);
});
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
public static class ConfigurationExtensions
{
public static ConfigurationManager InsertBefore(this ConfigurationManager config, Action<ConfigurationManager> action)
{
// Get all existing sources and make a copy
var existing = config.Sources.ToArray();
// Clear theses sources
config.Sources.Clear();
// Mutate configuration
action(config);
// Add the older sources back
foreach (var s in existing)
{
config.Sources.Add(s);
}
return config;
}
}