Делаешь нестатическую конфигурацию, а потом, во время инициализации кладёшь экземпляр конфига в public static cвойство.
В .NET 6 это можно сделать примерно так:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
GlobalConfig.Instance = app.Configuration;
app.MapGet("/", () => $"I can use configuration w/o DI! AllowedHosts={GlobalConfig.Instance.GetValue<string>("AllowedHosts")}");
app.Run();
public static class GlobalConfig
{
public static IConfiguration Instance { get; set; }
}
Но лучше не надо)