如何在 Blazor 服务器端 razor 组件中导入 IConfiguration?

Ski*_*007 2 c# blazor blazor-server-side

我有一个 razor 组件,我想使用我的 appsettings.json 文件中的配置值,我已经按照这里的示例进行操作:Inject an IConfiguration

但这对我来说在 @code 块中不起作用。

到目前为止,我的剃须刀组件如下所示:

@using Microsoft.Extensions.Configuration
@inject IConfiguration Configuration

@code {
    private string strValue = Configuration.GetSection("MySection").Value;
}
Run Code Online (Sandbox Code Playgroud)

我在 Configuration.GetSection 行上收到以下错误:

字段初始值设定项不能引用非静态字段、方法或属性“MyComponent.Configuration”

我显然可以在 @code 部分之外使用 @Configuration 而不会出错。

我错过了什么吗?我无法找到与此确切问题相关的帖子,如果这是重复的,请见谅。

Isa*_*aac 6

尝试这个:

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

}
}
Run Code Online (Sandbox Code Playgroud)

您不能通过同时strValue调用来定义和初始化变量Configuration.GetSection。您通常必须在 OnInitialized(Async) 对中定义一个变量,然后用方法调用返回的值填充它。