swagger-api/swagger-codegen

[C#][CSharp] Generating code for an array of enums produces incorrect output

Open

#5,329 创建于 2017年4月5日

在 GitHub 查看
 (2 评论) (1 反应) (0 负责人)HTML (5,474 fork)batch import
Client: C-SharpFeature: EnumIssue: Bughelp wanted

仓库指标

Star
 (12,701 star)
PR 合并指标
 (30 天内没有已合并 PR)

描述

Description

For models that contain array of items that are enums output enum code produced doesn't compile.

Swagger-codegen version

I've tried 2.2.1 and 2.2.2 - on both problem occurs.

Swagger declaration file content or url

Minimal example:

"TestModel": {
	"required": ["Login"],
	"type": "object",
	"properties": {
		"Login": {
			"maxLength": 255,
			"minLength": 0,
			"type": "string"
		},
		"Types": {
			"type": "array",
			"items": {
				"format": "int32",
				"enum": [0, 1, 2],
				"type": "integer"
			}
		}
	}
}

Full example json file: https://gist.github.com/mkarpusiewicz/1c863c29ed08000bce05fbcf91bf1726

Command line used for generation

java -jar swagger-codegen-cli.jar generate -i enum-test.json -l csharp -o enum-test -DpackageName="WebApiTest"

Steps to reproduce
  1. With given enum.test.json use command line above to generate C# classes.
  2. TestModel.cs contains enum TypesEnum with members like:
[EnumMember(Value = ""0"")]
_0 = "0",

Int values are treated like strings and code doesn't compile.

Correct code should be:

[EnumMember(Value = "0")]
_0 = 0,
Related issues

I didn't find any related issue with arrays of enums. Only one vaguely connected: https://github.com/swagger-api/swagger-codegen/issues/4670

贡献者指南