我尝试使用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,
}
这是发生器的问题还是我的文档的问题?有没有办法解决这个问题而无需手动编辑代码?
感谢。
答案 0 :(得分:0)
似乎你的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"
}
这里的解决方案是为每个枚举成员分配整数值。