我正在尝试使用NSwagStudio从AspNetCore Web API生成一个c#客户端。生成的代码包含一组枚举,根据修饰它们的属性,它们显然是Json序列化的标志-我找不到它们实际使用的位置。其中有几个是用重复值生成的,这使得代码不能直接编译。
示例:
[System.CodeDom.Compiler.GeneratedCode("NJsonSchema", "8.30.6304.31883")]
public enum ConstructorInfoMethodImplementationFlags
{
_0 = 0,
_0 = 0,
_1 = 1,
_2 = 2,
_3 = 3,
_3 = 3,
_4 = 4,
_4 = 4,
_8 = 8,
_16 = 16,
_32 = 32,
_64 = 64,
_128 = 128,
_256 = 256,
_4096 = 4096,
_65535 = 65535,
}这是生成器的问题还是我的文档有什么问题?有没有办法在不手动编辑代码的情况下修复这个问题?
谢谢。
发布于 2017-06-06 14:10:18
似乎在Web API项目中定义的枚举是错误的。你有类似这样的东西:
[Flags]
public enum ConstructorInfoMethodImplementationFlags
{
None,
Method0 = 0,
Method1 = 1,
Method2 = 2
Method3 = 4,
...
AllMethods = 65535
}因此,这将以您意想不到的方式转换为OAI规范:
"ConstructorInfoMethodImplementationFlags": {
"format": "int32",
"enum": [
0,
0,
1,
2,
4
...
65535
],
"type": "integer"
}这里的解决方案是为每个枚举成员分配整数值。
https://stackoverflow.com/questions/43482434
复制相似问题