【问题标题】:Class Library with Models not getting Xml Comments using Swagger带有模型的类库没有使用 Swagger 获取 Xml 注释
【发布时间】:2019-01-22 11:29:34
【问题描述】:

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

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

这里是我包含 Xml cmets 的地方:

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

【问题讨论】:

  • 你能分享一些你的代码,特别是你使用IncludeXmlComments的部分
  • 这里是我包含 Xml cmets 的地方: services.AddSwaggerGen(c => { c.SwaggerDoc("v1", new Info { Title = "Web API", Version = "v1" }) ; c.IncludeXmlComments($@"{System.AppDomain.CurrentDomain.BaseDirectory}\ABC.Application.WebApi.xml"); });
  • 看起来您只有一个 IncludeXmlComments,但您的 WebApi 至少应该有两个,另一个用于包含您的模型的类库。

标签: swagger swagger-ui asp.net-core-webapi swashbuckle asp.net-core-2.1


【解决方案1】:

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

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 复制到您的项目中。参考:Add NuGet package XML documentation to Swagger

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多