【问题标题】:Swagger XML comments file - missing commentsSwagger XML 评论文件 - 缺少评论
【发布时间】:2019-04-29 12:59:48
【问题描述】:

我正在使用 Swashbuckle.Core 5.6.0 为我的 Web API 2 API 自托管 Swagger 文档

我在我的 Startup.cs 中启用 Swagger,如下所示

config.EnableSwagger(c => 
        {
            c.SingleApiVersion("v1", "AUDM API");
            c.IncludeXmlComments(AppDomain.CurrentDomain.BaseDirectory + "commentsfile1.xml");
            c.IncludeXmlComments(AppDomain.CurrentDomain.BaseDirectory + "commentsfile2.xml");
            c.DescribeAllEnumsAsStrings();
        }).EnableSwaggerUi(/*x => x.DisableValidator()*/);

swagger ui 显示得很好,列出了我所有的端点和方法。但是,文档为零.. 我在控制器中的所有 cmets 和备注都丢失了,

当我调试并查看我的 XML 文件的两个完全限定路径时,它们在运行时解析得很好,所以我假设应该没问题。

这两个 xml 文件来自不同的库,但这没关系,如果它.. 文件在那里,恕我直言,它们应该被使用。有没有办法解决 XML 文件没有被拾取的原因?

【问题讨论】:

  • 是的,应该可以的...你在 GitHub 上有示例项目吗?

标签: asp.net-web-api2 swagger swashbuckle xml-comments


【解决方案1】:

我认为您可能在路径中缺少斜杠 \,试试这个:

c.IncludeXmlComments(AppDomain.CurrentDomain.BaseDirectory + "\commentsfile1.xml");

这是来自官方项目的示例: https://github.com/domaindrivendev/Swashbuckle/blob/5489aca0d2dd7946f5569341f621f581720d4634/Swashbuckle.Dummy.Core/App_Start/SwaggerConfig.cs#L261

【讨论】:

  • 我尝试过使用额外的斜线,但行为相同。至少在我的情况下, AppDomain.CurrentDomain.BaseDirectory 以斜线结尾(或者更确切地说.. .NET 字符串中的两个)。实际上,我重写了我的代码以使用 System.IO.Path.Combine 生成路径,但这是同一个故事。我什至正在使用 System.IO.File.Exists.. 检查生成的路径是否存在,它报告为 true。
  • @user1537915 您可以将示例项目上传到 github 以重现您的问题吗?
  • 有趣的是,我正在去一个可能想看 swagger GUI 的客户的路上,突然间我开始买 cmets。我想我的编译配置出了点问题。如果我发布 .xml 文档文件,我什至会在我的发布配置中获得 cmets。但是,当我将我的应用程序作为服务运行时,它会在我的 .xml 文件上出现一个很好的 FileNotFoundException 失败。我认为 AppDomain.CurrentDomain.BaseDirectory 是 c:\windows\system32 - 但是,这并不能解释为什么将我的 xml 文件复制到该目录并不能解决问题。
猜你喜欢
  • 2012-06-19
  • 2017-04-10
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 2011-04-15
  • 2012-10-11
  • 2013-07-10
相关资源
最近更新 更多