Наследование XML-комментариев от интерфейсов в C#
мне было интересно, знает ли кто-нибудь, как связать 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, но не могу найти решение для C#.
спасибо
5 ответов:
связывание XML-комментариев IMHO невозможно, но вы можете использовать такой инструмент, как GhostDoc чтобы скопировать XML-комментарий из интерфейса / базового класса в реализацию / производный класс.
XMLDoc определяет тег
<include />для включения комментариев из другого файла, который был вокруг с Visual Studio 2003. Самым большим предостережением является то, что ссылочный файл должен быть файлом, содержащим только документацию XMLDoc, а не другой исходный файл.посмотреть страница MSDN для более подробной информации.
Если вы используете GhostDoc это очень помогает с "транспортировкой" документации от интерфейсов к коду реализации.
http://blog.x-tensive.com/2008/02/fixml.html
Это постпроцессор, который имеет некоторые дополнительные опции, где отсутствует исходная система документации.
на сайте:
краткое описание:
FiXml-это постпроцессор XML-документации, созданной C# \ Visual Basic.Net. в нем рассматриваются некоторые из наиболее раздражающих случаев, связанных с написанием XML-документации на этих языках: - Нет поддержки для наследования документации из базового класса или интерфейса. Т. е. документация для любого переопределенного члена должна быть написана с нуля, хотя обычно желательно наследовать хотя бы часть его. - Нет поддержки для вставки часто используемых шаблонов документации, таких как "этот тип является одноэлементным - используйте его свойство, чтобы получить единственный экземпляр.", или даже "инициализирует новый экземпляр класса."
Я создал инструмент командной строки для последующей обработки файлов документации XML, добавив поддержку тега
. хотя это не помогает с Intellisense в исходном коде, он позволяет включать измененные файлы документации XML в пакет NuGet и поэтому работает с Intellisense в ссылочных пакетах NuGet.
см.www.inheritdoc.io для получения дополнительной информации (доступна бесплатная версия).
Comments