Как я могу легко посчитать количество форм в большом решении? - PullRequest
1 голос
/ 04 ноября 2010

Как я могу легко посчитать количество форм в большом решении?

У меня есть решение Visual Studio, содержащее более 20 проектов winforms. Я должен выполнить задачу, в которой я должен проверить каждую форму, и я должен дать оценку усилий руководителю моего проекта. Эта оценка лучше всего дана с точки зрения количества форм. Полезно сообщать о прогрессе в терминах «27/275 заполненных форм, потратить 3 часа».

Для этого проекта я использую VS 2008 и Resharper 5.

Было бы неплохо получить более общий ответ, например, о том, «как считать количество классов, производных от указанного класса».

Ответы [ 3 ]

2 голосов
/ 04 ноября 2010

Это встроено в ReSharper - не требуется код или дополнительные инструменты. Передо мной нет ReSharper 5, но в версии 4.5 я бы использовал команду меню в разделе ReSharper> Поиск> Расширенный поиск пользователей.

Оттуда вы можете создать список всех классов, которые наследуются от System.Windows.Form. Затем либо посмотрите список результатов поиска в среде IDE, либо экспортируйте его в файл для дальнейшей проверки.

2 голосов
/ 04 ноября 2010

Вот простой простой способ, который работает, если ваши проекты организованы в хорошем виде - откройте Windows File Explorer в корне решения и выполните поиск по суффиксу файла, как только поиск завершится, подсчет файловбудет в строке состояния Проводника внизу.

Для классов, использующих C #, я мог бы выполнить поиск всего решения для текста : MyBaseClass, в окне поиска это вернуло бы все классы, полученные изНезависимо от MyBaseClass я случайно назначил.Я не уверен в синтаксисе для R #, но вы должны быть в состоянии сделать что-то подобное.

Наконец, я считаю, что ReSharper имеет функцию для этого, но она может быть доступна только в платной версии.

0 голосов
/ 04 ноября 2010

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

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

Затем вы можете получить все классы в пространстве имен, как описано здесь .

Довольно легко проверить, является ли тип производным от формы или нет.

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

...