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

无法创建引用类实例:C# Web API中PaymentDto初始化报错

问题解决:PaymentDto对象初始化报错

直接解决方案

放弃使用对象初始化器,改为先实例化对象再逐个赋值:

var payment = new PaymentDto();
payment.Iinn = "1131244211";
payment.Acn = "2131244212";
payment.Trmn = "3131244213";
payment.Trn = "4131244214";

报错原因分析

你的项目基于.NET Framework 4.7.2,而NuGet包中的PaymentDto类使用了C# 8.0+引入的Nullable参考类型特性(类定义里的NullableAttribute、NullableContextAttribute可佐证)。虽然4.7.2对Nullable特性有基础支持,但编译器对带有这类特性的类的对象初始化器存在兼容性问题,导致无法识别属性的setter,从而抛出“无法初始化,它不是字段或属性”的错误。

可选的持久化解决方案

如果想继续使用对象初始化器,可以修改项目配置以更好适配Nullable特性:

  • 右键项目 → 属性 → 生成 → 高级
  • 在弹出窗口中,将“Nullable参考类型”设置为“启用”
  • 保存设置后重新编译项目

或者直接编辑项目的.csproj文件,添加以下配置:

<PropertyGroup>
  <Nullable>enable</Nullable>
</PropertyGroup>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 21:12:13