在一个 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)