Múltiples archivos de configuración json utilizando Host.CreateDefaultBuilder
En una aplicación de consola, estoy utilizando la siguiente configuración:
IHost host = Host.CreateDefaultBuilder()
.ConfigureServices((context, services) =>
{
services.AddSingleton<program>();
string someConfigItem = context.Configuration["SomeConfigItem"];
})
.Build();
host.Services.GetRequiredService<program>().Go();
Esto lee automáticamente desde appsettings.json
, sin necesidad de usar explícitamente un constructor de configuración u algo parecido.
¿Qué ocurre si quiero agregar un archivo JSON adicional? Con el constructor de configuración, simplemente puedes agregar varios archivos llamando a AddJsonFile()
múltiples veces, pero no encuentro un lugar donde añadir más archivos aquí.
davy.ai
Para agregar un archivo JSON adicional a la configuración en la configuración de la aplicación de la consola dada, es necesario modificar el generador de configuración predeterminado que se crea a través de
Host.CreateDefaultBuilder()
. Puede hacer esto encadenando el método.ConfigureAppConfiguration()
para agregar otro archivo JSON:En este ejemplo, agregamos el archivo
appsettings.custom.json
al generador de configuración. El parámetrooptional
se establece entrue
para indicar que este archivo no es obligatorio y la aplicación debe continuar ejecutándose incluso si este archivo no está presente.Al encadenar el método
.ConfigureAppConfiguration()
, puede modificar el generador de configuración predeterminado para agregar más archivos JSON, modificar el orden de carga de archivos, establecer el comportamiento de recarga de archivos y más.