我的 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/