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.

Leer la Configuración de Aplicación del Portal de Azure del servicio Static Web App utilizando Blazor WASM.

Estoy ejecutando una aplicación Blazor WASM en Azure Static Web App.
En mi aplicación .NET6 C#, quiero leer la configuración que agregué en el portal.
No estoy utilizando ni quiero usar appsettings.json o web.config. Quiero leer el valor que agregué en el portal.

He estado leyendo sobre esto durante días. Encontré muchas páginas sobre soluciones del lado del servidor, que no puedo utilizar porque solo ejecuto el lado del cliente.

Supongo que debo hacer algo en mi program.cs:

static void ConfigureServices(IServiceCollection services, string baseAddress)
{
    services.AddTransient(_ => new HttpClient(new DefaultBrowserOptionsMessageHandler(new HttpClientHandler())
    {
        DefaultBrowserRequestCache = BrowserRequestCache.ForceCache,
        DefaultBrowserRequestMode = BrowserRequestMode.Cors
    })
    {
        BaseAddress = new Uri(baseAddress)
    });

// TODO hacer que la configuración del portal esté disponible para todas las páginas y componentes

}

No estoy seguro de cómo inyectar la configuración.

Creo que necesito usarla en mi página de la siguiente manera:

@page "/"
@inject IConfiguration _configuration

<h1>Hola, mundo!</h1>

<p>Bienvenido a tu nueva aplicación.</p>
<p>Configuración: @_configuration["Foo"]</p>
<p>Entorno: @Environment.GetEnvironmentVariable("Foo")</p>

<surveyprompt title="¿Cómo está funcionando Blazor para ti?"></surveyprompt>

Por favor, aconseje.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para leer el valor que has añadido en el portal en tu aplicación Blazor WASM en Azure Static Web App, puedes utilizar la interfaz IConfiguration proporcionada por el sistema de configuración de .NET Core.

    Primero, necesitas configurar un proveedor de configuración en tu archivo Program.cs. Puedes hacer esto añadiendo el siguiente código dentro del método CreateHostBuilder:

    .ConfigureAppConfiguration(builder =>
    {
        var settings = builder.Build();
    
        builder.AddAzureAppConfiguration(options =>
        {
            options.Connect(settings["ConnectionStrings:AppConfig"])
                   .ConfigureRefresh(refresh =>
                   {
                       refresh.Register("Foo", true);
                   });
        });
    })
    

    Este código añade un proveedor de configuración de Azure App Configuration a la tubería de configuración. Se conecta a la instancia de Azure App Configuration utilizando la cadena de conexión en el archivo appsettings.json. También registra la clave Foo para la actualización automática de la configuración.

    A continuación, puedes inyectar la interfaz IConfiguration en tus componentes y utilizarla para leer el valor del almacén de configuración:

    @page "/"
    @inject IConfiguration Configuration
    
    <h1>Hola, mundo!</h1>
    
    Bienvenido a tu nueva aplicación.
    
    Config: @Configuration["Foo"]
    
    <surveyprompt title="¿Cómo te está funcionando Blazor?"></surveyprompt>
    

    El código anterior inyecta la interfaz IConfiguration en el componente y la utiliza para leer el valor de la clave Foo del almacén de configuración.

    Por defecto, Azure Static Web App recogerá automáticamente los últimos valores de configuración de Azure App Configuration cuando realices una nueva implementación. También puedes activar manualmente una actualización de configuración navegando al Editor del servicio de aplicaciones y haciendo clic en el botón de Actualizar.

Comments are closed.