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

添加含DateOnly参数的接口导致NSwag客户端生成失败求助

问题原因与解决方法

问题核心原因

  • NSwag v14.0.2对.NET 6新增的DateOnly类型缺乏支持:官方宣称的"支持DateTime参数"仅针对传统的System.DateTime类型,而DateOnly是.NET 6才引入的新值类型,该版本的NSwag未实现对它的元数据解析逻辑,读取类型信息时触发空引用异常。
  • ASP.NET Core默认未为DateOnly生成标准OpenAPI元数据,进一步导致NSwag无法正确识别该参数类型,引发解析错误。

可行解决办法

  • 升级NSwag版本:将NSwag升级到v14.1.x及以上的稳定版本,后续版本已修复对DateOnly等.NET 6新增值类型的解析问题。
  • 手动配置类型映射:在NSwag配置文件中,添加DateOnly到OpenAPI string(date)类型的映射规则,确保客户端生成时能正确识别该参数,示例配置:
    "typeMappings": {
      "DateOnly": "string(date)"
    }
    
  • 临时替代方案:将接口参数替换为DateTime类型,在接口内部通过DateOnly.FromDateTime(d)转换为DateOnly使用,绕过类型解析问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 21:52:02