共享类与swagger生成的类

Share classes vs. swagger generated classes(共享类与swagger生成的类)
本文介绍了共享类与swagger生成的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个包含三个项目的ASP.NET/Blazor VS解决方案

  1. 共享
  2. ASP.NET核心API
  3. Blazor Web程序集。

我在Shared项目中创建了一些类,并从其他两个项目中引用了Shared项目。到目前为止一切正常。

然后,我使用Swagger UI为我生成存根,以便我可以与远程API交互。Swagger UI创建了Service.csContract.cs,非常棒。问题是Contract.cs重新定义了我在它自己的命名空间下的共享项目中声明的类。现在我不知道该用哪种,该进口哪种。如果我使用自己的Shared类,那么如果不强制转换,我将无法在Service.cs中使用swagger中的API。如果我修改Contract.cs,则下次运行Swagger UI时,我所做的所有更改都将丢失。

这还导致有两个DBContext-1)我定义的那个和2)swagger定义的那个。现在,每当我想要做一些事情时,我还必须在命令行上使用--context参数来指定要使用哪个DBContext

问题是,我如何使用自己的类,同时使用swagger来简化与远程API的对话?这里的最佳实践是什么?

推荐答案

如果要使用swagger(客户端),则不应引用共享项目。大摇大摆的小爪子就是你得到/想要的。

但是在Blazor里你不需要Swagger。在Shared中共享DTO类是Blazor的亮点之一。

如果您需要有关客户端上的样板内容的帮助,那么有类似refit这样的选项。有关此信息,请参阅blog。

这篇关于共享类与swagger生成的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)