Наследование 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#.



спасибо

761   5  

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

    Ничего не найдено.