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

.NET读取配置时Dictionary类型属性始终为null的问题

问题原因与解决方案

你的问题出在配置结构和C#类定义不匹配:

  1. 当前appsettings中Providers是一个包含DefaultCode和Url的普通对象,但你在CurrencyConfiguration里把它定义为Dictionary<string, CurrencyProvider>。配置绑定系统无法把单个对象映射到字典类型,所以Providers会被设为null。

  2. 正确的配置结构应该把Providers改成键值对形式,每个键对应一个CurrencyProvider实例,示例如下:

{
    "Currency": {
        "DefaultCode": "EUR",
        "Url":"some url",
        "Providers": {
            "EuroProvider": {
                "DefaultCode": "EUR",
                "Url":"some url"
            },
            "UsdProvider": {
                "DefaultCode": "USD",
                "Url":"another url"
            }
        }
    }
}
  1. 如果你的实际需求是Providers只对应单个配置(而非多个提供者),那应该修改C#类定义,把Providers的类型从Dictionary<string, CurrencyProvider>改为CurrencyProvider,这样就能正常绑定。

验证方法:修改配置后重新运行,Providers会被正确填充为包含对应键值的字典。

内容的提问来源于stack exchange,提问作者Mark1337

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 19:52:12