我有一个用 swagger 记录的 dotnet API 应用程序。在我的一个端点中,我收到了这样的 DTO:
public class CreateCooperativeUserDTO
{
[Required]
public required string Name { get; set; }
[Required]
public required DateTime BirthDate { get; set; }
[Required]
public required DateTime AdmissionDate { get; set; }
[Required]
public required string BadgeName { get; set; }
[Required]
[JsonConverter(typeof(JsonStringEnumConverter<Race>))]
public required Race Race { get; set; }
}
这个 DTO 有一个名为 Race 的属性,它是一个枚举,但在我的 swagger 文档中,它们表示为整数数组。
我想以字符串数组的形式接收它们。我怎样才能做到这一点?
我能够将 Enum 公开为字符串,在 Program.cs 中的扩展方法 AddControllers 上配置 JsonOptions 方法,如下代码所示:
builder.Services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
} );