C# 从Swagger中排除特定枚举值
我总是向我的所有枚举添加一个C# 从Swagger中排除特定枚举值,c#,.net,enums,swagger,swashbuckle,C#,.net,Enums,Swagger,Swashbuckle,我总是向我的所有枚举添加一个未初始化的值,并将其设置为0,以处理反序列化具有从未设置的枚举属性值的对象的情况 enum MyEnum { Uninitialized = 0, MyEnumValue1 = 1, MyEnumValue2 = 2, MyEnumValue3 = 3, } 但是,我不希望未初始化的值出现在我的Swagger文档中 我尝试将[JsonIgnore]属性添加到该值中,但没有成功 有人知道如何做到这一点吗?您可以使用IDocumentFi
未初始化的
值,并将其设置为0
,以处理反序列化具有从未设置的枚举属性值的对象的情况
enum MyEnum
{
Uninitialized = 0,
MyEnumValue1 = 1,
MyEnumValue2 = 2,
MyEnumValue3 = 3,
}
但是,我不希望未初始化的值出现在我的Swagger文档中
我尝试将[JsonIgnore]
属性添加到该值中,但没有成功
有人知道如何做到这一点吗?您可以使用IDocumentFilter
从规范中删除任何您想要的内容
一开始可能并不直观,看看他们的一些例子:
这样,您就可以更改swagger json规范,以删除或插入任何您想要的内容。
现在要小心,你可能会得到一个不符合的规范,请始终对照验证器进行检查:你是否使用Swachbuckle生成了Swagger页面?@ysabih是的。我使用的是SwashBulk.AspNetCore v4.0.2SwashBulk不支持隐藏枚举成员,您必须将枚举包装在一个类中,然后使用[JsonIngore],下面是一个详细的答案