我已将Swashbuckle
软件包添加到我的ASP核心项目中。
我想配置Swagger以使用VS xml评论自动生成。
问题在于我无法找到获取该位置的方法:
PlatformServices.Default.Application.ApplicationBasePath
- 指向项目根路径Directory.GetCurrentDirectory()
- 相同Path.GetFullPath(".")
- 相同IHostingEnvironment.WebRootPath
- 相同通过<project>.xproj
选项在BaseIntermediateOutputPath
中配置的输出文件夹。
但我无法在运行时获得此位置。
var pathToDoc = "????";
options.OperationFilter(new Swashbuckle.SwaggerGen.XmlComments.ApplyXmlActionComments(pathToDoc));
我看到的解决方案不好:
但是我想在Docker,CI,localhost中使用它,所以我不认为这是使用硬编码解决方案的最佳解决方案..
答案 0 :(得分:2)
您可以尝试以下函数来获取XML文件路径
private string GetXmlCommentsPath()
{
var app = PlatformServices.Default.Application;
return System.IO.Path.Combine(app.ApplicationBasePath, System.IO.Path.ChangeExtension(app.ApplicationName, "xml"));
}
xml文件与应用程序具有相同的名称。我目前在我的项目中使用此代码,它工作正常。