Como importar IConfiguration no componente de navalha do lado do servidor Blazor?

Oct 04 2020

Eu tenho um componente de navalha no qual desejo usar um valor de configuração, de meu arquivo appsettings.json, e segui o exemplo aqui: Injetar uma IConfiguration

Mas isso não funciona dentro do bloco @code para mim.

Meu componente de navalha se parece com isto até agora:

@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

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

Recebo o seguinte erro na linha Configuration.GetSection:

Um inicializador de campo não pode fazer referência ao campo, método ou propriedade não estático 'MyComponent.Configuration'

Aparentemente, posso usar @Configuration fora da seção @code sem erros.

Estou esquecendo de algo? Não consegui encontrar uma postagem relacionada a esse problema exato, desculpe se esta é uma cópia

Respostas

5 enet Oct 04 2020 at 00:05

Experimente isto:

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

}
}

Você não pode definir e inicializar a variável strValuechamando Configuration.GetSectionao mesmo tempo. Normalmente, você precisa definir uma variável e, em seguida, preenchê-la com um valor retornado por uma chamada de método, no par OnInitialized (Async).