1

我想在端点 REST 服务和客户端之间使用共享 DLL。两者都是用 dotnet core 编写的。

我不希望生成的 nswag c# 包含在共享 DLL 中定义的这些对象,而只是引用它们。这样,我保留了所有验证属性/逻辑,并且可以在服务器和前端进行验证。

我尝试使用“排除的类型名称”,但这没有任何效果。例如。我的通用 dll 命名空间是“MyCommonLibrary”,其中有一个“MyType”类型的对象。我已经在该字段中尝试了“MyCommonLibrary.MyType”以及“MyType”,但都没有生成缺少该类型的 C# 生成文件(即生成了新类型)。

假设我的 REST 调用是

public MyType[] GetAll(){ ... }

我希望生成的控制器返回 MyCommonLibrary.MyType 而不是“MyGenreatedController.MyType”。

有没有办法做到这一点?

我希望对此进行通配符,因为我自己和其他开发人员将继续添加此内容并希望生成生成的 C# 代码作为构建过程的一部分。

4

1 回答 1

1

这可以通过以下方式解决:

  • 添加一个自定义模式处理器,它将 x-namespace 添加到规范中的所有类型/模式
  • 生成客户端代码时,处理规范并根据命名空间动态查找所有排除的类型名称
  • 使用这些排除的类型名称运行客户端生成器
于 2018-11-30T16:55:46.170 回答