.Net 6 Swagger如何将枚举显示为字符串

Ten*_*tov 7 .net c# swagger asp.net-core-6.0

招摇的例子

你好!我正在尝试添加枚举作为我的 swagger 端点的参数,但它们显示为整数。在旧的 .net 上有 swagger 选项option.DescribeAllEnumsAsStrings();,但我在 .net 6 上没有它。 程序代码示例

我尝试添加options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());但仍然没有将我的枚举显示为字符串。

Tin*_*ang 13

我在这里发现了同样的问题,我测试了我这边问题中提到的解决方法,它对我有用。

在Program.cs,

追加.AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); });在后面builder.Services.AddControllers()

代码应如下所示:

using System.Text.Json.Serialization;

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddControllers()
    .AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); });
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述