Come importare IConfiguration nel componente razor lato server Blazor?

Oct 04 2020

Ho un componente Razor su cui voglio usare un valore di configurazione, dal mio file appsettings.json, e ho seguito l'esempio qui: Inject an IConfiguration

Ma questo non funziona all'interno del blocco @code per me.

Finora il mio componente rasoio assomiglia a questo:

@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

@code {
    private string strValue = Configuration.GetSection("MySection").Value;
}

Ottengo il seguente errore nella riga Configuration.GetSection:

Un inizializzatore di campo non può fare riferimento al campo, al metodo o alla proprietà non statici "MyComponent.Configuration"

Apparentemente posso usare @Configuration al di fuori della sezione @code senza errori.

Mi sto perdendo qualcosa? Non sono riuscito a trovare un post relativo a questo problema esatto, quindi scusa se si tratta di un duplicato.

Risposte

5 enet Oct 04 2020 at 00:05

Prova questo:

@code {
    private string strValue;
  
  protected override void OnInitialized()
{
    strValue = Configuration.GetSection("MySection").Value;

}
}

Non è possibile definire e inizializzare la variabile strValuechiamando Configuration.GetSectioncontemporaneamente. Di solito è necessario definire una variabile e quindi popolarla con un valore restituito da una chiamata al metodo, nella coppia OnInitialized (Async).