C# 如何使Swagger将模型模式枚举生成为字符串而不是int?
我有一个基于.NETCore3的WebAPI项目,我的初创公司是这样的C# 如何使Swagger将模型模式枚举生成为字符串而不是int?,c#,asp.net-web-api,swagger,.net-core-3.0,C#,Asp.net Web Api,Swagger,.net Core 3.0,我有一个基于.NETCore3的WebAPI项目,我的初创公司是这样的 services.AddControllers(o => o.EnableEndpointRouting = false) .AddMvcOptions(o => { //Add mvc options here }) .AddNewtonsoft
services.AddControllers(o => o.EnableEndpointRouting = false)
.AddMvcOptions(o =>
{
//Add mvc options here
})
.AddNewtonsoftJson(o =>
{
o.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
o.SerializerSettings.Converters.Add(new StringEnumConverter());
o.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd'T'HH':'mm':'ss.fff'Z'";
})
.SetCompatibilityVersion(CompatibilityVersion.Latest);
Swagger将模式生成为:
status MyEnumStatusinteger($int32)
Enum:
[ 1, 2, 3]
我的C#enum如下所示:
public enum TimesheetWorkflowStatus
{
NotStarted = 1,
InProgress = 2,
Completed = 3
}
为什么Swagger将这个枚举计算为int而不是string?我尝试使用
descripeballemsasstrings
,但它已过时。我在这里遗漏了什么吗?我从中找到了解决方案。我必须添加services.AddSwaggerGenNewtonsoftSupport()
以及services.AddSwaggerGen()
才能使它工作