asp.net - Web Api 帮助页面来自 1 个以上文件的 XML 注释

标签 asp.net asp.net-web-api documentation asp.net-web-api-helppages

我的 Web api 项目中有不同的插件,它们都有自己的 XML 文档,并且有一个集中的帮助页面,但问题是 Web Api 的默认帮助页面仅支持单个文档文件

new XmlDocumentationProvider(HttpContext.Current.Server.MapPath("~/App_Data/Documentation.xml"))

如何从不同的文件加载配置?我想做这样的事情:

new XmlDocumentationProvider("PluginsFolder/*.xml")

最佳答案

您可以修改 Areas\HelpPage 中已安装的 XmlDocumentationProvider 来执行如下操作:

将多个 Xml 文档文件合并为一个:

示例代码(缺少一些错误检查和验证):

using System.Xml.Linq;
using System.Xml.XPath;

 XDocument finalDoc = null;
 foreach (string file in Directory.GetFiles(@"PluginsFolder", "*.xml"))
 {
    if(finalDoc == null)
    {
        finalDoc = XDocument.Load(File.OpenRead(file));
    }
    else
    {
        XDocument xdocAdditional = XDocument.Load(File.OpenRead(file));

        finalDoc.Root.XPathSelectElement("/doc/members")
                     .Add(xdocAdditional.Root.XPathSelectElement("/doc/members").Elements());
    }
}

// Supply the navigator that rest of the XmlDocumentationProvider code looks for
_documentNavigator = finalDoc.CreateNavigator();

关于asp.net - Web Api 帮助页面来自 1 个以上文件的 XML 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22165724/

相关文章:

asp.net - Request.ServerVariables - 它去哪儿了?

c# - 发布时 Azure SDK 存储程序集未找到异常

带有由客户端分隔的 Multi-Tenancy 数据库的 Rest API

ios - IBAction 事件含义

css - 缩小时 Gridview 空白

c# - ASP MVC5 身份用户抽象

json - 已启用 CORS,但在 POST JSON 时,预检响应的 HTTP 状态代码 404 无效

asp.net-web-api - 网络 API : Make action parameter mandatory

python - 阅读第 3 方模块的 Python 文档

c++ - Doxygen 警告 : no uniquely matching class member found for