首页 > 解决方案 > 带有模型的类库没有使用 Swagger 获取 Xml 注释

问题描述

我在多个asp.net core web api项目中使用的模型有一个.net core 2.1 类库。我正在为我的 API 文档使用Swagger(版本 3.0.0)不会为类库中的模型显示Xml注释是的,我的 Startup.cs 中有IncludeXmlComments。如何让 Xml 注释在我的模型类库中工作?

注意:我的项目目录中的模型由 Swagger 正确记录。

这里是我包含 Xml 注释的地方:

services.AddSwaggerGen(c => { 
    c.SwaggerDoc("v1", new Info { Title = "Web API", Version = "v1" }); 
    c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}\ABC.Application.WebApi.xml"); 
}); 

标签: swaggerswagger-uiasp.net-core-webapiswashbuckleasp.net-core-2.1

解决方案


任何引用的程序集都必须单独添加。ABC.Application.WebApi.xml 将不包含来自您的共享模型类的 xml 注释。

services.AddSwaggerGen(c => { 
    c.SwaggerDoc("v1", new Info { Title = "Web API", Version = "v1" }); 
    c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}\ABC.Application.WebApi.xml"); 
    c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}\YourSharedClass.Models.xml"); 
}); 

您可能需要将模型 xml 复制到您的项目中。参考:将 NuGet 包 XML 文档添加到 Swagger


推荐阅读