我在 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
,它可以是一个array
C#/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; }
}