问题描述
我正在使用 Swagger 记录我的 .NET C#
API,当我的模型在另一个项目中时,Swagger 只是崩溃并且不加载任何内容.
I am using Swagger to document my .NET C#
API and when my models are on another project Swagger just crashes and doesn't load anything.
当我从 Visual Studio 加载示例 WebAPI
项目时,它使用同一项目中的模型并且可以正常工作:
When I load the sample WebAPI
Project from Visual Studio it uses the models that are on the same project and it works:
但是当我使用其他项目中的模型时,它会在加载任何内容之前崩溃.
But when I use Models from other project it just crashes before loading anything.
我有一个 API 项目和一个业务项目.我的模型是存储在我的商业项目中的视图模型(并在其他项目中共享,因此需要在那里).
I have an API project and a Business Project. My models are View Models stored(and shared among other projects, therfore needed there) on my Buisiness Project.
有什么方法可以向 Swagger 指出我的模型定义在哪里?
Is there any way I can indicate to Swagger where my model definitions are?
推荐答案
我最近在处理一个托管在 IIS 上的 Web API 项目时遇到了类似的情况.我被要求为来自两个不同项目的所有视图模型和模型启用 xml 文档.
I have recently handled a similar scenario when I worked on a web API project which was hosted on IIS. I was required to enable xml documentations for all view models and models from two different projects.
以下是工作主要步骤的总结:
Below is a summary of the main steps of the work:
- 为相关项目启用 XML 文档(请参阅 这里)
- 对于每个项目,首先构建它,然后将 xml 文件包含在项目中.将文件Copy to Output Directory"的属性设置为Copy is newer",以确保将其复制到服务器的bin文件夹中.
- 在 Swagger 配置中,调用 IncludeXmlComments() 以包含 Simon88 建议的 XML 文档文件.
关键是要确保所有 xml 文档文件都复制到主机服务器的 bin 文件夹中,并且 Swagger UI 知道它们在哪里:-).
The key point is to ensure all xml documentation files are copied to the bin folder of the host server and Swagger UI knows where they are :-).
顺便说一句,这类问题几乎没有类似的问题/答案.一个是这里
By the way, there are few similar questions/answers for this kind of issue. One is here
希望对你有帮助.
这篇关于Swashbuckle - 将模型和示例值从另一个项目的模型添加到 Swagger UI的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!