是否可以在 Swashbuckle.AspNetCore 中隐藏 Enum 成员?

Is it possible to hide an Enum member in Swashbuckle.AspNetCore?

我有一个枚举,例如

public enum SampleFormats
{
   unknown = 0,
   audio = 1,
   video = 2,
}

是否可以通过生成的 swagger json 排除的方式装饰 unknown 成员?

我可以写一个 schema/document 过滤器,但想知道是否有开箱即用的东西。

你可以试试这个:

public enum SampleFormats
{
    unknown = 0,
    audio = 1,
    video = 2,
}

public class ResultModel
{
    public SampleFormats Format { get; set; }

    [JsonIgnore]
    public bool FormatSpecified
    {
        get { return Format != SampleFormats.unknown; }
    }

    public string Name { get; set; }
}

[HttpGet()]
[AllowAnonymous]
public async Task<ResultModel> Get()
{
    return new ResultModel { Format = SampleFormats.unknown, Name = "Test" };
}

魔术是后缀 Specified,表示 属性 将由 Newtonsoft.Json

呈现