.NET 8控制台依赖注入:JSON数据无法注入类的问题
问题排查思路
1. 先确认配置绑定是否真的拿到了完整数据
- 检查
CollarSurveyPickupSettings的属性名和JSON配置文件里的键名完全匹配(C#大小写敏感,别出现拼写或大小写错误) - 在第36行之后加调试代码,直接序列化打印
CollarSurveyPickupSettings,确认子对象CollarSurveyPickupM、AcquireCommandLineM、PeggingSettingsM本身是否有数据:Console.WriteLine(System.Text.Json.JsonSerializer.Serialize(CollarSurveyPickupSettings));
2. 检查VM构造函数的赋值逻辑
- 打开
CollarSurveyPickupVM的代码,确认构造函数里是否将CollarSurveyPickupSettings的子属性明确赋值给了VM自身的对应字段/属性,别只传入settings就完事,比如:public CollarSurveyPickupVM(CollarSurveyPickupSettings settings, /* 其他DbContext和Options参数 */) { // 必须明确赋值子属性 CollarSurveyPickupM = settings.CollarSurveyPickupM; AcquireCommandLineM = settings.AcquireCommandLineM; PeggingSettingsM = settings.PeggingSettingsM; // 初始化DbContext和Options... }
3. 核对JSON配置的结构
- 打开你的.json文件,确认
CollarSurveyPickupSettings节点下确实存在CollarSurveyPickupM、AcquireCommandLineM、PeggingSettingsM三个子节点,且每个子节点内有有效数据,不是空对象或结构错误
4. 检查依赖注入的注册逻辑
- 确认
CollarSurveyPickupSettings在DI容器中是正确注册的,比如是否使用了类似以下的代码,确保注入到VM的是已经绑定好配置的实例:builder.Services.Configure<CollarSurveyPickupSettings>(builder.Configuration.GetSection("CollarSurveyPickupSettings"));
内容的提问来源于stack exchange,提问作者Quentin
相关产品推荐
相关产品推荐

