SwaggenGen 没有映射子节点的新继承属性

问题描述 投票:0回答:0

在一个 web api 项目中,我有这样结构的类:

public class GenericCartDTO 
{
   public CartDescription CartDesc;
}

public class CartDescription {
   public string Description;
   public int NumElements;
   public double price;
}

继承类:

public class SpecializedCartDTO : GenericCartDTO 
{
   public new SpecializedCartDescription CartDesc;
}

public class SpecializedCartDescription : CartDescription 
{
   public stringSerialNumber;

}

在控制器中,对客户的特定调用将 SpecializedCartDTO 作为输入,但是在创建 specializedCartDescription 的额外属性 SerialNumber 时,我只有 CartDescription 的数据。

用这些代码生成的招摇:

builder.Services.AddSwaggerGen(options =>
    {
        
  
        options.SwaggerDoc("v1", new OpenApiInfo
        {
            Version = Utility.GetSwaggerVersionFromAssembly(),
            Title = "my title",
            Description = "API used to manage purchase \n ",
            
            Contact = new OpenApiContact
            {
                Name = "xxxxxxxxx",
                Url = new Uri("xxxxxxxxxxxxxxxxxxxxxxxxxxx")
            },
            License = new OpenApiLicense
            {
                Name = "Unlicense",
                Url = new Uri("https://unlicense.org/")
            },
        });
    });

我认为问题出在 new 关键字上,因为如果我用另一个名称和类型 SpecializedCartDescription 放置一个属性,我会看到序列号。

如何让 swagger 正确生成所有 SpecializedCartDescription 对象数据(包括 SerialNumber)

asp.net-core-webapi swagger-codegen .net-7.0
© www.soinside.com 2019 - 2024. All rights reserved.