小编Ria*_*mad的帖子

NSwag 生成重复类型

我正在使用 NSwag SwaggerToCSharpClientGenerator 来生成请求和响应类和枚举。

我有一些 Web API 方法共享相同的枚举作为参数或请求对象的一部分。当我运行 NSwag API 时,它多次生成相同的枚举定义,但命名为 Enum1、Enum2、Enum3、ResponseClassEnum。

我可以配置 NSwag(或 Swashbuckle)以便只生成一个枚举吗?

我的 NSwag 代码如下所示:

   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);
Run Code Online (Sandbox Code Playgroud)

我把混淆的 swagger.json 放在这里 - https://pastebin.com/hT5ySZub

从混淆的 swagger.json 生成 的输出在这里 - https://pastebin.com/e0AYJWer在输出中,DupEnum 类型定义为以下类型:DupEnum、DupEnum2、DupEnum3 和 TypeBDupEnum。

nswag

2
推荐指数
1
解决办法
3283
查看次数

标签 统计

nswag ×1