Мне нужно задокументировать веб-API ядра asp.net, и я использую swagger и автоматику.
Я посмотрел вокруг и нашел эту ссылку, но она старая и не работает https://github.com/domaindrivendev/Swashbuckle/issues/93
Может ли кто-нибудь показать / указать мне, как я могу включить xml-комментарии из другой dll?
Благодарность
Существует две версии автомата переключающей передачи:
Если теги в этом вопросе верны, ваша ссылка не на ту версию, которую вы используете, но все же предлагаемое решение должно дать вам хорошее представление о том, что вам нужно делать.
Вы можете включить столько xml-комментариев, сколько хотите, с IncludeXmlComments
, который все еще доступен на Swashbuckle.AspNetCore, см. Здесь:
Swashbuckle.AspNetCore.SwaggerGen / Application / SwaggerGenOptions.cs # L259
Сначала вам нужно убедиться, что нужные вам xml-комментарии поступают на сервер как часть вашего развертывания, иначе Swashbuckle не покажет то, чего там нет ...
Решением может быть рекурсивный цикл поиска файлов XML и их добавление с помощью IncludeXmlComments, примерно так:
public void IncludeAllXmlComments(string folder)
{
if (!string.IsNullOrEmpty(folder))
{
foreach (var name in Directory.GetFiles(folder, "*.XML", SearchOption.AllDirectories))
{
IncludeXmlComments(filePath: name);
}
}
}
Этот пример кода предназначен только для того, чтобы дать вам представление, а не для копирования / макаронных изделий.
@ developer9969 Да для обоих, xmlcomments для всей вашей dll уже должны выводиться в то же место, где находится dll, по умолчанию это: project\bin\Debug
или Release в зависимости от настроек вашей сборки
правильно. Они уже делают. но, глядя на свой псевдокод, вы передавали папку, а затем получали все файлы. что, как я думал, подразумевает, что все dll.xmlcomments выводились в назначенную папку, а не в каталог bin / debig / release по умолчанию
@ developer9969 Ключевым моментом в моем коде является: Directory.GetFiles(folder, "*.XML", SearchOption.AllDirectories)
, который получит все файлы .xml в папке и любой подпапке данной папки, поэтому идея состоит в том, чтобы предоставить папке максимально высокий уровень, и позволить GetFiles выполнять работу для вас (я предполагаю, что в вашей папке нет миллионов файлов, это будет плохо, очень плохо)
Привет, спасибо за ваше время. Я использую Swashbucke.AspNetCore (2.4.0), который, как я полагаю, является последней правильной версией для веб-API ядра asp.net. Правильно? Будет ли решение вывести xmlcomments для каждой dll в конкретный общий каталог и прочитать его оттуда?