2010-09-02 7 views
4

Предположим, что в Visual Studio у меня есть новый проект, который содержит некоторые из тех же API из старого проекта, и я хотел бы скопировать документацию xml в новую. Есть ли способ, которым я могу это сделать без ручного копирования их по одному?Способ копирования XML-комментариев из набора API-интерфейсов в другой аналогичный набор API-интерфейсов?

ответ

4

Я поддерживаю проект с открытым исходным кодом, который реализует функцию, поддерживающую программный доступ к комментариям 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 комментарии аналогичных типов в двух сборках. Если вам необходимо ограничить копирование для конкретных членов, вы также можете выполнить это с помощью библиотеки, хотя вам потребуется реализовать логику фильтрации метода самостоятельно.

+0

Работы красиво. Благодарю. Отличный проект! – Dan7

1

Я не слышал о таком инструменте. Единственное, что я знаю о том, что это удаленно похоже, это способность ReSharper копировать комментарии xmldoc от базовых классов к производным классам.