Ответ 1
Связывание XML-комментариев IMHO невозможно, но вы можете использовать такой инструмент, как GhostDoc, чтобы скопировать XML Комментарий от вашего интерфейса/базового класса к классу реализации/производного.
Мне было интересно, знает ли кто, как связать комментарий xml интерфейса с реализацией. Проблема в том, что я хочу, чтобы базовые комментарии поступали из моего интерфейса. Пример:
interface myinterface {
/// <summary>
/// Does something.
/// </summary>
void method1(string foo);
}
а затем реализация:
public class myclass : myinterface {
public void method1(string foo) {
//do something...
}
}
Итак, теперь, если я навешиваю метод с помощью мыши после создания объекта:
myclass foo = new myclass();
foo.method1("do something");
как я могу сделать комментарии в всплывающем окне? Есть ли способ связать комментарии интерфейса с реализацией? Я знаю, что есть способ в Java, но не могу найти решение для С#.
Спасибо
Связывание XML-комментариев IMHO невозможно, но вы можете использовать такой инструмент, как GhostDoc, чтобы скопировать XML Комментарий от вашего интерфейса/базового класса к классу реализации/производного.
XMLDoc определяет тег <include />
для включения комментариев из другого файла, который был вокруг с Visual Studio 2003. Самый большой оговорка - это файл с файлами, содержащий только документацию XMLDoc, а не другой исходный файл.
Подробнее см. страницу MSDN.
Если вы используете GhostDoc, это очень помогает в "транспортировке" документации с интерфейсов на код реализации.
http://blog.x-tensive.com/2008/02/fixml.html
Это постпроцессор с некоторыми дополнительными параметрами, в которых отсутствует исходная система документации.
С веб-сайта:
Краткое резюме:
FiXml является пост-процессором документации XML, созданной С#\Visual Basic.Net. В нем рассматриваются некоторые из наиболее неприятных случаев, связанных с написанием документации XML на этих языках: - Нет поддержки для наследования документации из базового класса или интерфейса. То есть документация для любого переопределенного элемента должна быть написана с нуля, хотя обычно ее вполне желательно унаследовать, по крайней мере, ее часть. - Нет поддержки для вставки обычно используемых шаблонов документации, таких как "Этот тип singleton - использует его свойство, чтобы получить единственный экземпляр этого файла", или даже "Инициализирует новый экземпляр класса".
Я построил инструмент командной строки для последующей обработки файлов документации XML, добавляя поддержку для < inheritdoc/ > тег.
Хотя он не помогает с Intellisense в исходном коде, он позволяет добавлять файлы XML-документации, модифицированные XML, в пакет NuGet и, следовательно, работает с Intellisense в упомянутых пакетах NuGet.
См. www.inheritdoc.io для получения дополнительной информации (доступна бесплатная версия).
Похоже, <inheritdoc/>
скоро получит собственную поддержку.