2014-02-13 4 views
3

Есть ли способ (инструмент или что-то еще), который позволяет не дублировать те же комментарии XML при наследовании/переопределении методов из базовых классов?Сохранять комментарии при переопределении

Например .:

/// <summary> 
/// Represent a brand new object in .NET 
/// </summary> 
public class MyObject : Object 
{ 
    /// <summary> 
    /// Copy-Paste the same Xml comment 
    /// like in the base class is boring! 
    /// </summary> 
    /// <param name="obj">and params too!! ((</param> 
    /// <returns>this one too!!! (((</returns> 
    public override bool Equals(object obj) 
    { 
     return base.Equals(obj); 
    } 
} 
+1

Похоже, что sandcastle потребует от вас ссылок на свои библиотеки, чтобы получить эту функциональность. Я не уверен, что это правильно или нет, поскольку я только просматривал документацию. Если это прерыватель транзакций, вам может потребоваться следить за 'https: // github.com/pmacn/DocPlagiarizer' по мере его созревания. Это специальная задача сборки, которая будет копировать комментарии для вас как часть процесса сборки. В настоящее время это только «интерфейсы -> реализации», а не «базовые классы -> подклассы», но запросы на получение или отчеты о проблемах приветствуются. Отказ от ответственности: я создал этого зверя. –

ответ

7

Я думаю, что вы ищете inheritdoc:

/// <inheritdoc /> 
public override bool Equals(object obj) 

Это не standard tag (так Intellisense может не поддерживать его, exampple), но это довольно обычно используется - в частности, Sandcastle supports it.

4

Если вы ищете инструмент, вы можете попробовать GhostDoc расширение для визуальной студии. Он помогает вам генерировать комментарии и может принимать комментарии от базового класса.

Как сгенерированный комментарий является регулярным комментарием, IntelliSense поддерживает его правильно, но он не волшебным образом обновляется при изменении базового комментария.

Смежные вопросы