如何在 Dotnet API 中接收 Enum 作为字符串?

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

我有一个用 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 文档中,它们表示为整数数组。

架构示例

我想以字符串数组的形式接收它们。我怎样才能做到这一点?

.net enums swagger documentation
1个回答
0
投票

我能够将 Enum 公开为字符串,在 Program.cs 中的扩展方法 AddControllers 上配置 JsonOptions 方法,如下代码所示:

 builder.Services.AddControllers().AddJsonOptions(options =>
{
    options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());

} );
© www.soinside.com 2019 - 2024. All rights reserved.