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

.NET Core无法从appsettings.json读取对象问题排查

问题原因及解决办法

你的配置反序列化失败、属性值均为默认值的问题,核心出在配置绑定的访问权限限制,还有一处可选的代码优化点:

1. Preset类的属性权限错误

.NET Core配置绑定器(Get<T>()方法)仅能访问**公共(public)**属性,你定义的Preset类中Width、Height、Fit都是默认私有(private)属性,绑定器无法读取配置值并为其赋值,因此这些属性会保持类型默认值(int为0,bool为false)。

修改后的Preset类:

public class Preset
{
    public int Width { get; set; }
    public int Height { get; set; }
    public bool Fit { get; set; }
}

2. ImagePresets构造函数的实例共享问题(可选优化)

你在ImagePresets构造函数中,将所有预设属性指向同一个Preset实例:

FeaturedLocation = SearchListing = Large = PropertyPage = new Preset();

这会导致所有预设共享同一个对象,后续修改任意一个预设的属性值,其他预设也会同步变化。建议改为每个属性单独实例化:

public ImagePresets()
{
    SearchListing = new Preset();
    PropertyPage = new Preset();
    Large = new Preset();
    FeaturedLocation = new Preset();
}

验证修改后的读取逻辑

保持原读取代码不变即可正常工作:

ImagePresets _presets = _config.GetSection("image:ImagePresets").Get<ImagePresets>();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 03:06:30