NSwag Наследование и полиморфизм

У меня есть модель, которую я обслуживаю из службы приложений.NET Core в Azure.

Он содержит свойство списка производных типов из базового типа, называемого Adjustment.

Я добавил атрибуты JsonInheritanceConverter и KnownType для каждого производного типа, но когда я смотрю на документ о чванстве, я не вижу ничего, что бы указывало на осведомленность о цепочке наследования.

Когда я генерирую сервисный клиент, кажется, что частичные классы не украшены JsonInheritanceConverter из этого примера в репозитории: https://github.com/RSuter/NJsonSchema/wiki/Inheritance

Уверен, я просто пропускаю что-то вроде переключателя, когда генерирую своего клиента из конечной точки сваггера, или что-то еще. У кого-нибудь была эта проблема?

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

1 ответ

Решение

Изучив наш фирменный проект оболочки и заметки о выпуске для NSwag версии 12.0.0, мы уверены, что устаревшие инструменты являются виновником здесь.

Другие вопросы по тегам