es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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í.

Tags:  , , ,

Answer

  1. Avatar for 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:

    IHost host = Host.CreateDefaultBuilder()
        .ConfigureAppConfiguration((context, config) =>
        {
            config.AddJsonFile("appsettings.custom.json", optional: true);
        })
        .ConfigureServices((context, services) =>
        {
            services.AddSingleton<program>();
            string someConfigItem = context.Configuration["SomeConfigItem"];
        })
        .Build();
    
    host.Services.GetRequiredService<program>().Go();
    

    En este ejemplo, agregamos el archivo appsettings.custom.json al generador de configuración. El parámetro optional se establece en true 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.

Comments are closed.