本文介绍了共享类与swagger生成的类的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个包含三个项目的ASP.NET/Blazor VS解决方案
- 共享
- ASP.NET核心API
- Blazor Web程序集。
我在Shared
项目中创建了一些类,并从其他两个项目中引用了Shared
项目。到目前为止一切正常。
Swagger UI
为我生成存根,以便我可以与远程API交互。Swagger UI
创建了Service.cs
和Contract.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生成的类的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!