Найти все ссылки на детский метод

Я хочу найти все вызовы в ссылках DateTime.ToString в моей сборке. В Visual Studio вы можете "Найти все ссылки", щелкнув правой кнопкой мыши на ToString; однако, возвращает все ссылки на ToString для всех классов, а не только DateTime.

Обычный поиск DateTime.ToString не будет работать из-за следующего примера:

DateTime myDate = new DateTime();
myDate.ToString();

Какие-либо предложения?

Ответ 1

Для этого вы должны использовать ReSharper.

шаги:

  1. Загрузите и установите ReSharper (пробная версия будет работать для вас)
  2. Откройте проект/решение в Visual Studio
  3. Найти использование ToString(), например myDate.ToString();
  4. Щелкните правой кнопкой мыши значок ToString
  5. Выберите пункт " Find Usages Advanced...
  6. Отметьте соответствующие окна в окне, как показано на скриншоте ниже, и нажмите " Find
  7. ПРИБЫЛЬ

enter image description here

Ответ 2

В VS2015, когда вы пытаетесь найти ссылки для метода переопределения, вы их группируете по типу в
Результаты: Результаты поиска символа

enter image description here

Ответ 3

В визуальной студии AFAIK это невозможно, хотя resharper может.

В окне поиска в расширенном режиме вы можете отфильтровать, какой тип вы ищете. Вы можете указать меньше производных или более полученных.

Поэтому в этом случае вы можете отфильтровать только DateTime или весь ValueType или System.Object.

enter image description here


В этом случае я думаю, что визуальная студия не может помочь, но я бы хотел поделиться некоторыми трюками.

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

Что вы можете сделать, так это просто перейти к классу Person и прокомментировать реализацию интерфейса INotifyPropertyChanged. Затем найдите все ссылки в visual studio, которые расскажут вам только о ссылках класса Person. Не все типы.

По крайней мере, я надеюсь, что этот трюк может помочь в каком-то другом месте, если не сейчас.

Ответ 4

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

Это может быть не дешево, но если у вас есть большая база кода -especialy с несколькими assemblies-, это может быть очень эффективно!