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

如何从App Center的OpenAPI生成C# SDK?遇NSwagStudio报错

解决NSwagStudio生成App Center API SDK时的重复属性错误

App Center的OpenAPI规范虽然在网页校验显示有效,但里面可能存在多态Schema的属性重复定义问题——部分父类型和子类型Schema都声明了id、name这类通用属性,NSwag的代码生成逻辑对这种情况的兼容性不足,所以触发了System.InvalidOperationException: The properties 'id', 'name' are defined multiple times异常。

下面是具体的解决步骤:

  • 先导出App Center的OpenAPI规范文件(从提供的地址下载YAML或JSON格式)
  • 手动编辑规范文件:
    • 全局搜索properties.id和properties.name,定位到重复定义这些属性的Schema
    • 检查这些Schema是否存在继承关系,如果子Schema重复声明了父Schema已有的属性,直接删除子Schema里的重复定义
  • 用修改后的规范文件重新在NSwagStudio生成C# SDK
  • 要是不想手动改文件,也可以试试调整NSwagStudio的设置:
    • 找到「Schema Generator」选项卡,勾选「AllowReferencesWithProperties」
    • 或者启用「FlattenInheritanceHierarchy」,把继承结构扁平化,避开重复属性冲突

另外提一句:有些OpenAPI规范为了兼容多客户端会允许这类重复,但代码生成工具的容错性通常没那么高,手动清理重复定义是最稳妥的办法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 10:15:11