В Visual Studio я могу щелкнуть правой кнопкой мыши класс или метод и выбрать "Найти обычаи". Это дает мне список мест в моем решении, где используется эта часть кода. Как я могу сделать то же самое из своего кода?
Как использовать С# для поиска способов использования класса или метода?
Ответ 1
Вам нужно будет проанализировать ваш код, чтобы сделать это. Я не думаю, что вы могли бы сделать это с отражением. MS работают над проектом под названием Roslyn. Это своего рода API для компилятора .NET. Он должен предоставить вам то, что вам нужно. Отправляйте эту статью для получения информации о проекте Roslyn.
Цитата из сообщения:
Это открывает новые возможности для расширителей VS для создания мощных рефакторинга и инструментов анализа языка, а также включить наши парсеры, семантические двигатели, генераторы кода и сценариев в своих приложениях.
Этот пост демонстрирует работу с символами.
Этот пост отвечает на вопрос о получении всех ссылок.
Ответ 2
Честно говоря, я никогда раньше этого не делал, потому что мне никогда не нужно было ничего.
Для доступа к какой-либо информации вам необходимо иметь доступ к Token Tree
компилятора, построенного для semantic analysis
.
Такая информация, конечно, вы можете получить из Roslyn (API для компилятора С#). Где вы можете нажать на функцию API текст C#
, запустить компилятор над ним и восстановить Tokens tree
.
Надеюсь, что это поможет.
Ответ 3
Насколько я знаю, нет способа найти все способы использования во всех проектах вашего решения. Если у вашего класса есть уникальное имя, функция поиска Visual Studio имеет область поиска "Полный выбор", которая ищет точный текст поиска в каждом файле вашего решения.
Это не определяет каждый раз, когда ваш метод используется, так как он также соответствует комментариям, аналогично названным полям, что-либо с той же строкой, но это хороший старт.