У меня есть компонент бритвы, для которого я хочу использовать значение конфигурации из моего файла appsettings.json, и я следовал приведенному здесь примеру: Внедрить IConfiguration

Но для меня это не работает внутри блока @code.

Мой бритвенный компонент пока выглядит так:

@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

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

Я получаю следующую ошибку в строке Configuration.GetSection:

Инициализатор поля не может ссылаться на нестатическое поле, метод или свойство MyComponent.Configuration.

Очевидно, я могу использовать @Configuration вне раздела @code без ошибок.

Я что-то упускаю? Мне не удалось найти сообщение, относящееся именно к этой проблеме, извините, если это дубликат.

4
Skint007 3 Окт 2020 в 19:46

1 ответ

Лучший ответ

Попробуй это:

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

}
}

Вы не можете определить и инициализировать переменную strValue, вызывая Configuration.GetSection одновременно. Обычно вам нужно определить переменную, а затем заполнить ее значением, возвращаемым вызовом метода, в паре OnInitialized (Async).

4
enet 3 Окт 2020 в 17:05