使用通用C#共享库的NSwagStudio

时间:2018-11-28 22:32:35

标签: nswag

我想在端点REST服务和客户端之间使用共享的DLL。两者均以dotnet核心编写。

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

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

说我的REST呼叫是

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

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

有没有办法做到这一点?

我希望对此进行通配,因为我和其他开发人员将继续对此进行添加,并希望在生成过程中生成生成的C#代码。

1 个答案:

答案 0 :(得分:0)

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

  • 添加自定义架构处理器,该处理器将x名称空间添加到规范中的所有类型/方案中
  • 生成客户端代码时,请处理规范并根据名称空间动态查找所有排除的类型名称
  • 使用这些排除的类型名称运行客户端生成器