swagger-api/swagger-codegen

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

Open

#5.329 aberto em 5 de abr. de 2017

Ver no GitHub
 (2 comments) (1 reaction) (0 assignees)HTML (5.474 forks)batch import
Client: C-SharpFeature: EnumIssue: Bughelp wanted

Métricas do repositório

Stars
 (12.701 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

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

Guia do colaborador