Предположим, что в Visual Studio у меня есть новый проект, который содержит некоторые из тех же API из старого проекта, и я хотел бы скопировать документацию xml в новую. Есть ли способ, которым я могу это сделать без ручного копирования их по одному?Способ копирования XML-комментариев из набора API-интерфейсов в другой аналогичный набор API-интерфейсов?
ответ
Я поддерживаю проект с открытым исходным кодом, который реализует функцию, поддерживающую программный доступ к комментариям XML-документа. См. Jolt.NET для получения дополнительной информации о проекте, а именно «Querying XML Doc Comments» для документации по этой функции.
Вот пример использования библиотеки для реализации того, что вы ищете.
using Jolt;
using System.Xml.Linq;
void CopyXmlDocComments(Assembly sourceAssembly)
{
XDocument newDocComments = new XDocument();
XmlDocCommentReader reader = new XmlDocCommentReader(sourceAssembly);
foreach(Type t in sourceAssembly.GetTypes()) // implement type filter here
{
newDocComments.Add(reader.GetComments(t));
}
newDocComments.Save("newAssemblyName.dll.xml");
}
В этом примере, я предполагаю, что вы хотите скопировать DOC комментарии аналогичных типов в двух сборках. Если вам необходимо ограничить копирование для конкретных членов, вы также можете выполнить это с помощью библиотеки, хотя вам потребуется реализовать логику фильтрации метода самостоятельно.
Я не слышал о таком инструменте. Единственное, что я знаю о том, что это удаленно похоже, это способность ReSharper копировать комментарии xmldoc от базовых классов к производным классам.
Работы красиво. Благодарю. Отличный проект! – Dan7