#c# #.net #visual-studio-2010
#c# #.net #visual-studio-2010
Вопрос:
Я пытаюсь просмотреть унаследованный код и найти, какие объекты нигде не используются, чтобы я мог безопасно удалить их. Есть ли в VS 2010 Pro инструмент, который позволяет это сделать? Я просто делал Поиск, но я нахожу, что иногда это может ввести в заблуждение.
Ответ №1:
JetBrains ReSharper может сделать это за вас. Тем не менее, вам все равно нужно быть разумным при удалении классов. Если вы используете контейнеры and DI или конфигурируете через внешние файлы, я видел, что они думают, что вещи не используются, хотя на самом деле они есть.
Вот пример того, как он сообщает об этом в файле (также можно запустить анализ для всего решения):
Комментарии:
1. Спасибо за пример. Является ли это анализом всего решения, который приводит к тому, что Resharper работает так медленно (очень медленно)? Я использовал пробную версию, и она засоряла мою машину. Приведенный вами пример покажет только, правильно ли он используется в текущем файле? Его все еще можно использовать в другом файле? Просто перепроверьте.
2. Он фактически проверяет, используется ли класс где-либо в вашем решении. Это также относится к свойствам и методам, поэтому вы можете обрезать свои объекты, если не можете полностью их удалить. Для повышения производительности, если вы разрешаете ему кэшировать свои результаты, это не должно быть слишком плохо. Возможно, у вас просто огромное решение или медленный блок разработки?
3. Поле разработки неплохое, решение просто огромное, как я указал Oded, у первоначальных разработчиков было мышление количества, а не качества.
Ответ №2:
У Resharper есть эта функция — если вы включите анализ всего решения, имя любого члена класса, который не используется, будет выделено серым цветом.
Вам нужно быть осторожным, если вы используете какой-либо контейнер IoC, поскольку он может использовать элемент во время выполнения, но статический анализ базы кода не сможет обнаружить это использование.
Комментарии:
1. Я использовал пробную лицензию Resharper, но это ооооооочень медленно.
2. Здесь нет контейнеров IoC. Это перешло из классического приложения asp в приложение .net 2.0, и это был вопрос количества, а не качества.
3. Вы знаете, если Refactor Pro! это тоже так?
4. @Xaisoft — Пока нет, хотя они, вероятно, в конечном итоге реализуют его. Смотрите это: devexpress.com/Support/Center/p/AS3994.aspx