Ich verwende NSwag SwaggerToCSharpClientGenerator, um die Anforderungs- und Antwortklassen und Enums zu generieren.NSwag Generieren von doppelten Typen
Ich habe einige Web-API-Methoden, die die gleiche Aufzählung als ein Argument oder als Teil des Anfrageobjekts teilen. Wenn ich die NSwag-API ausführe, wird dieselbe Enum-Definition mehrere Male generiert, aber benannt als Enum1, Enum2, Enum3, ResponseClassEnum.
Kann ich NSwag (oder Swashbuckle) so konfigurieren, dass nur eine Enumeration generiert wird?
Mein NSwag Code wie folgt aussieht:
var document = SwaggerDocument.FromUrlAsync(
"http://localhost:5003/swagger/v1/swagger.json").Result;
var settings = new SwaggerToCSharpClientGeneratorSettings();
settings.GenerateClientClasses = false;
settings.CSharpGeneratorSettings.Namespace = "My.Interface";
settings.CSharpGeneratorSettings.ArrayType = "List";
settings.AdditionalNamespaceUsages = new string[] { "System.Collections.Generic" };
settings.GenerateExceptionClasses = false;
var generator = new SwaggerToCSharpClientGenerator(document, settings);
var code = generator.GenerateFile();
File.WriteAllText("Swagger.MyApi.cs", code);
Ich habe hier verschleierten swagger.json put - https://pastebin.com/hT5ySZub
Produziert Ausgabe von verschleierten swagger.json hier ist - https://pastebin.com/e0AYJWer In der Ausgabe der type DupEnum ist in Typen definiert: DupEnum, DupEnum2, DupEnum3 und TypeBDupEnum.