【发布时间】:2019-04-30 22:19:37
【问题描述】:
我想在我的端点 REST 服务和我的客户端之间使用共享 DLL。两者都是用 dotnet core 编写的。
我不希望生成的 nswag c# 包含在共享 DLL 中定义的这些对象,而只是引用它们。这样我保留了所有验证属性/逻辑,并且可以在服务器和前端进行验证。
我尝试使用“排除的类型名称”,但没有任何效果。例如。我的通用 dll 命名空间是“MyCommonLibrary”,其中有一个“MyType”类型的对象。我在该字段中尝试了“MyCommonLibrary.MyType”以及“MyType”,都没有生成缺少该类型的 C# 生成文件(即生成了新类型)。
假设我的 REST 调用是
public MyType[] GetAll(){ ... }
我希望生成的控制器返回 MyCommonLibrary.MyType 而不是“MyGenreatedController.MyType”。
有没有办法做到这一点?
我希望对此进行通配符,因为我和其他开发人员将继续添加此内容并希望生成生成的 C# 代码作为构建过程的一部分。
【问题讨论】:
-
ExcludedTypeNames 中的 MyType 应该可以工作
-
就像我说的,我试过了,但是没有用。我尝试了名称“MyType”和完整的类型名称“MyNamespace.MyType”。 MyType 定义在与应用程序程序集不同的程序集中,如果这有什么不同的话。
-
ExcludedTypeNames 基于 Swagger 规范中的名称,而不是初始 C# 类型...这也是您不能通过命名空间通配符排除的原因(ns 不在规范中)
标签: nswag