Интерфейс комментирования и наследования - PullRequest
0 голосов
/ 26 января 2011

Выполняя поиск, я нашел такой вопрос, задаваемый в за , но не нацеленный на VS2010 или C # .Net 4. Кто-нибудь сталкивался с способом сделать так, чтобы комментарии интерфейса наследовали классы реализации для использования intellisense?

Коллега предложил скопировать и вставить в реализацию, но должен быть лучший способ. Глядя на предыдущие рекомендации по вопросу, Sandcastle представляется генератором документации, которая мне не нужна.

Учтите следующее:

public interface IFoo
{
    /// <summary>
    /// Comment comment comment
    /// </summary>
    string Bar { get; set; }
}

public class Foo : IFoo
{
    public string Bar { get; set; }
}

public class Test
{
    public Test()
    {
        IFoo foo1 = new Foo();
        foo1.Bar = "Intellisense comments work";

        Foo foo2 = new Foo();
        foo2.Bar = "Intellisense comments don't work";
    }
}

Есть ли способ заставить intellisense работать на foo2?

1 Ответ

1 голос
/ 26 января 2011

Это не может быть сделано автоматически без изменения IntelliSense в VS.

Мой коллега использует ReSharper (http://www.jetbrains.com/resharper/), и я попросил его опробовать ваш код - и он делает именно то, что выВы спрашиваете, как он расширяет intellisense VS. Вы можете захотеть разобраться в этом.

Однако, для меня самый простой способ добиться этого - бесплатная версия GhostDoc - http://submain.com/products/ghostdoc.aspx, котораяделает внесение в базовую документацию метода / свойства единственной комбинацией клавиш.

Недостатком является то, что это клонирование документации, поэтому, если эта базовая документация изменится, вы должны помнить, чтобы перейти иочистите его в производном классе / интерфейсе и сгенерируйте заново.

Решение ReSharper, конечно, не страдает от этой проблемы, поэтому вы платите свои деньги (буквально, в случае ReSharper) и получаетеваш выбор. Конечно, могут быть и другие бесплатные плагины, которые достигают этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...