背景
我们在使用Swagger生成.NET Core Web Api
项目接口文档时候,发现接口的入参和出参的注释是看不见的,如下:
但是我想要结果是这样:
原因分析以及方案
为什么没有显示注释呢,注释确实写了呀?
原因很简单,通常我们用Swagger的时候只加载当前项目生成的xml
注释文件,例如这样:
-
var xmlPath = (basePath, "AppData", "");
-
(c =>
-
{
-
(item);
-
}
如果你的入参和出参的实体不在当前项目文件下,而是在Model层或者领域层创建的,肯定是没有的。
怎么解决?
- 首先入参和出参的实体所在项目要勾选输出
xml
注释文件; 这个简单在项目的属性->生成页面勾选就行; - Swagger要加载
xml
注释文件;
代码如下:
-
public void ConfigureServices(IServiceCollection services)
-
{
-
(c =>
-
{
-
foreach (var item in XmlCommentsFilePath)
-
{
-
(item);
-
}
-
});
-
}
-
-
static List<string> XmlCommentsFilePath
-
{
-
get
-
{
-
var basePath = ;
-
DirectoryInfo d = new DirectoryInfo(basePath);
-
FileInfo[] files = ("*.xml");
-
var xmls = (a => (basePath, )).ToList();
-
return xmls;
-
}
-
}
即可实现以上效果!