Inheritance NSwag遗传与多态性

Inheritance NSwag遗传与多态性,inheritance,polymorphism,swagger,nswag,Inheritance,Polymorphism,Swagger,Nswag,我有一个从Azure中的.NET核心应用服务提供的模型 namespace AppService.DataAccess.Models { public class Container: IBase { [Key] public int ID { get; set; } private List<Adjustment> _adjustments = new List<Adjustment>(); public

我有一个从Azure中的.NET核心应用服务提供的模型

namespace AppService.DataAccess.Models
{
  public class Container: IBase
  {
      [Key]
      public int ID { get; set; }

      private List<Adjustment> _adjustments = new List<Adjustment>();

      public List<Adjustment> Adjustments 
      { 
        get
        {
          return _adjustments;
        }
      }
  }
}
它包含一个名为Adjustment的基类型派生类型的列表属性

我已经为每个派生类型添加了JsonInheritanceConverter和KnownType属性,但是当我查看swagger文档时,我没有看到任何迹象表明它知道继承链

当我生成服务客户机时,部分类似乎没有使用repo上的这个示例中的JsonInheritanceConverter进行修饰:

可以肯定的是,当我从swagger端点生成我的客户机时,我只是缺少了一个开关之类的东西。有人有这个问题吗

名称空间AppService.DataAccess.Models
{
公共类容器:IBase
{
[关键]
公共int ID{get;set;}
私有列表_调整=新列表();
公开名单调整
{ 
得到
{
返回调整;
}
}
}
}

命名空间AppService.DataAccess.Models { [JsonConverter(类型(JsonInheritanceConverter),“鉴别器”)] [知识类型(类型(替换))] [知识类型(类型(弃权))] [知识类型(类型(豁免))] 公共类调整:IBase { [关键] 公共int ID{get;set;} } }

在审查了我们公司的包装器项目和NSwag版本12.0.0的发行说明后,我们确信过时的工具是罪魁祸首

我觉得不错。你能试着移除接口吗?问候。我将尝试一下,但是IBase接口在整个数据模型中都使用,所以我可能无法使用它。快速提问,一位同事指出NJsonSchema有自己的代码生成器,但我们正在使用NSwag生成客户机。这样行吗?好的,我可以拉界面,服务正在运行。当我查看生成的swagger.json时,我在调整定义中没有看到任何表示继承的内容。所以我想不管客户端生成器是什么,我仍然缺少一些东西。我从调整类中删除接口就足够了吗?我无法将其从容器类中删除,否则服务将不会返回容器。IBase只为我的通用存储库定义了属性。今天早上,我启动了另一个.Net核心应用程序服务,并实现了容器动物狗示例。我仍然没有在swagger.json中看到继承。我可以处理一个工具问题吗?也许我们使用的NSwag版本已经过时了?什么“工具”?