Как использовать С# для поиска способов использования класса или метода?

В Visual Studio я могу щелкнуть правой кнопкой мыши класс или метод и выбрать "Найти обычаи". Это дает мне список мест в моем решении, где используется эта часть кода. Как я могу сделать то же самое из своего кода?

Ответ 1

Вам нужно будет проанализировать ваш код, чтобы сделать это. Я не думаю, что вы могли бы сделать это с отражением. MS работают над проектом под названием Roslyn. Это своего рода API для компилятора .NET. Он должен предоставить вам то, что вам нужно. Отправляйте эту статью для получения информации о проекте Roslyn.

Цитата из сообщения:

Это открывает новые возможности для расширителей VS для создания мощных рефакторинга и инструментов анализа языка, а также включить наши парсеры, семантические двигатели, генераторы кода и сценариев в своих приложениях.

Этот пост демонстрирует работу с символами.
Этот пост отвечает на вопрос о получении всех ссылок.

Ответ 2

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

Для доступа к какой-либо информации вам необходимо иметь доступ к Token Tree компилятора, построенного для semantic analysis.

Такая информация, конечно, вы можете получить из Roslyn (API для компилятора С#). Где вы можете нажать на функцию API текст C#, запустить компилятор над ним и восстановить Tokens tree.

Обзор проекта Roslyn

Надеюсь, что это поможет.

Ответ 3

Насколько я знаю, нет способа найти все способы использования во всех проектах вашего решения. Если у вашего класса есть уникальное имя, функция поиска Visual Studio имеет область поиска "Полный выбор", которая ищет точный текст поиска в каждом файле вашего решения.

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