You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Blazor WebAssembly中为何无法用JSON文件覆盖IConfiguration配置?

问题原因及解决方法

核心问题

你的JSON配置里,MeIsAString是嵌套在AppConfiguration节点下的,但直接调用Configuration.Get<AppConfiguration>()时,配置系统会从根配置节点匹配AppConfiguration类的属性——而根节点并没有MeIsAString这个属性,所以只能使用类里定义的默认值"Hello World!"。

解决方法

方法一:读取时指定配置节

修改读取配置的代码,先定位到AppConfiguration配置节,再绑定到实体类:

var configSection = Configuration.GetSection("AppConfiguration");
var s = configSection.Get<AppConfiguration>().MeIsAString; // 此时s的值为"different string"

方法二:通过依赖注入绑定配置(推荐)

在Program.cs中将配置节绑定到服务容器,后续通过IOptions<T>注入使用:

  1. 在Program.cs中添加配置绑定逻辑:
// 执行完AddJsonStream后添加
builder.Services.Configure<AppConfiguration>(builder.Configuration.GetSection("AppConfiguration"));
  1. 在组件或服务中注入并使用:
@inject IOptions<AppConfiguration> AppConfig

// 使用配置
var s = AppConfig.Value.MeIsAString;

额外注意点

你的JSON文件存在语法错误:最后一个键值对末尾的逗号("different string",)和外层对象闭合前的逗号会导致JSON解析失败,建议删除多余逗号,修正后的JSON如下:

{
  "AppConfiguration": {
    "MeIsAString": "different string"
  }
}

内容的提问来源于stack exchange,提问作者john.doe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 00:57:10