2

我有一个模型,我从 Azure 中的 .NET Core appservice 提供服务。

它包含从名为 Adjustment 的基本类型派生的类型的列表属性。

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

当我生成一个服务客户端时,部分类似乎没有用 repo 上的这个示例中的 JsonInheritanceConverter 进行装饰:https ://github.com/RSuter/NJsonSchema/wiki/Inheritance

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

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;
        }
      }
  }
}

namespace AppService.DataAccess.Models { [JsonConverter(typeof(JsonInheritanceConverter), "discriminator")] [KnownType(typeof(Substitution))] [KnownType(typeof(Waiver))] [KnownType(typeof(Exemption))] public class Adjustment: IBase { [Key] public int ID { get; set; } } }

4

1 回答 1

0

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

于 2019-01-31T20:35:55.453 回答