Visual Studio - простой способ вызвать определение типа в качестве исходного кода - PullRequest
9 голосов
/ 12 мая 2010

Часто я хочу вызвать системный класс в представлении исходного кода, чтобы я мог просматривать свойства и методы, предоставляемые этим классом. Ниже приведен скриншот того, что я имею в виду:

Srting из метаданных http://img443.imageshack.us/img443/940/stringfrommetadata.png

Обычно я делаю это, выбирая имя класса и нажимая F12 (или щелкните правой кнопкой мыши> Перейти к определению). Однако, если у меня нет готового места, я набираю его, а затем делаю Перейти к определению. Большую часть времени я должен удалить то, что набрал позже.

Есть ли способ вызвать это представление без необходимости вводить имя класса? Диалоговое окно VS2010 Navigate To не поддерживает это.

РЕДАКТИРОВАТЬ: Когда я опубликовал вопрос, я не использовал никаких плагинов Visual Studio. Теперь, когда я понял, что у меня есть полная лицензия CodeRush (благодаря продвижению StackOverflow для пользователей с репутацией 10K), я приму ответы, которые используют CodeRush или Refactor!.

РЕДАКТИРОВАТЬ: На данном этапе я действительно нигде не пытался ответить на этот вопрос. Я собираюсь оставить это открытым и дать награду автоматически самому награждению Рори, поскольку он объяснил, что происходит лучше всего. Тем временем (если позволит расписание) я буду исследовать это с помощью DXCore, так как считаю, что это возможно.

Ответы [ 4 ]

7 голосов
/ 18 августа 2010

Представление, на которое вы смотрите, похоже, было построено с помощью своего рода анализа IL фреймворка. Без знания типа, который вы намереваетесь посмотреть, никакая деконструкция не может быть сделана. Поэтому я чувствую, что вы вряд ли найдете именно то, что, как вы сказали, вы ищете.

Позвольте мне предложить несколько альтернатив.

Отказ от ответственности: Я работаю в DevExpress в качестве евангелиста сообщества CodeRush.

Обозреватель объектов ( Ctrl + Alt + J ) Этот экран загрузится без попытки показать какой-либо конкретный тип, поэтому вам предстоит найти нужный тип. Однако доступны все типы и полная функциональность поиска. как только тип, который вы ищете или найден, все члены перечислены и доступны.

Обновление: Если вы используете ( Ctrl + K , Ctrl + R ) для запустите браузер объекта, затем он запустит фокусировку на поле поиска. Это бесценно.

Существует ряд функций CodeRush, которые могут оказаться полезными при попытке найти код.

TabToNextReference ( Tab ) Пока курсор располагается в типе, нажмите клавишу Tab, и будет найдена следующая ссылка на этот тип. Подробнее

References ToolWindow ( Shift + F12 ) При активации References ToolWindow будет отображать любые ссылки на текущий тип или элемент. Это окно инструментов также можно использовать для навигации по указанным ссылкам. Окно References Toolwindow можно использовать как в режиме реального времени, так и в режиме реального времени. это позволяет обновлять окно при перемещении по коду (с помощью мыши или клавиатуры) и находить все ссылки на любые символы, на которые попадает каретка.

QuickNav ( Ctrl + Shift + Q ) : эта функция наиболее близка по стилю к функции NavigateTo VS2010. QuickNav будет находить символы, совпадающие с тем, что вы вводите, в поле фильтра. Это средство также поддерживает поиск Case Camel. Подробнее

QuickNav также гораздо более настраиваемый , чем его аналог VS

Наконец

Также имейте в виду, что CodeRush построен на DXCore, фреймворке, который позволяет пользователям создавать свои собственные плагины для использования рядом друг с другом и CodeRush.

Эта структура неоднократно использовалась сообществом для добавления дополнительных функций. Так что, даже если вы не видите ничего, что подходит именно вам, рассмотрите возможность предложить что-нибудь сообществу через форумы или даже связаться со мной напрямую RoryB на DevExpress dot Com

Я уверен, что мы можем помочь вам:)

3 голосов
/ 17 августа 2010

Я не знал об этой новой функции «Навигация до», но раньше я использовал Reflector для такого рода вещей. Профессиональная версия предлагает некоторую интеграцию с Visual Studio (щелкните правой кнопкой мыши метод и выберите «Открыть в .NET Reflector»). Он откроет окно отражателя и не покажет код в самой VS. Вы можете посмотреть демонстрацию , которая показывает эту функцию и некоторые другие.
Это не лучший ответ, который я ожидаю, но это хороший вариант, чтобы знать.

2 голосов
/ 12 августа 2010

Я не знаю, как это сделать в Visual Studio 2010. Однако вы можете сделать это в ReSharper через меню «Перейти к». Я предлагаю вам попробовать 30-дневную пробную версию у них, а затем, если вам это действительно нужно, купите ее.

0 голосов
/ 19 августа 2010

Ряд надстроек позволяет вам просматривать объекты (хотя обычно в виде дерева просмотра объектов, а не в форме файла заголовка - я считаю, что у Resharper, CodeRush и Visual Assist X есть разные варианты этой темы) .

Однако стоит рассмотреть одну надстройку (поскольку она бесплатна) - VS Productivity Power Tools . Он добавляет окно Solution Navigator, которое дает представление о вашем решении, так же как Solution Explorer, но (среди прочих улучшений):

  • может искать и фильтровать перечисленные файлы, например, показывать только те файлы с именем Test .
  • может "развернуть" любую запись файла, чтобы показать типы и элементы в ней.
...