2

我在 Web API 上使用了一些标志枚举,到目前为止,我所看到的只是更改作为数组传递的标志的组合值。

有没有办法以更 .NET/C# 友好的方式声明它?也许使用collectionFormat=csv.

编辑 1

想象一下我有这个枚举:

[Flags]
public enum Directions
{
    Up = 1,
    Down = 2,
    Left = 4,
    Right = 8,
}

这个 C# 方法将作为 API 公开:

public class Request
{
    Directions Directions {get; set; }
}

public void SetAvailableDirections(Request request)
{
    // ...
}

因为该参数有多个值,所以它应该是一个,array但如果我可以构建一个collectionFormat设置为的 swagger 规范,就 swagger 而言csv,它可以是一个arrayC#/CLR 中的普通旧标志枚举。

这可能吗?

编辑 2

使用服务堆栈(正如使用它的人告诉我的那样)是这样的:

[Flags]
public enum Directions
{
    Up = 1,
    Down = 2,
    Left = 4,
    Right = 8,
}

public class Request
{
    [ApiMember(Name = nameof(Directions), AllowMultiple = true, ...)]
    [ApiAllowableValues(nameof(Directions), typeof(Directions))]
    Directions Directions {get; set; }
}
4

0 回答 0