Я недавно унаследовал консольное приложение C #, которое нуждается в некотором сокращении и очистке. Короче говоря, приложение состоит из одного класса, содержащего более 110 000 строк кода. Да, более 110 000 строк в одном классе. И, конечно же, приложение является основой нашего бизнеса, круглосуточно обновляя данные, используемые на динамическом веб-сайте. Хотя мне сказали, что мой предшественник был «действительно хорошим программистом», очевидно, что он вообще не был в ООП (или в управлении версиями).
Во всяком случае ... во время ознакомления с кодом я обнаружил множество методов, которые объявлены, но на них никогда не ссылаются. Похоже, что для копирования кода использовалась функция копирования / вставки, например, скажем, у меня есть метод с именем getSomethingImportant (), скорее всего, есть еще один метод с именем getSomethingImortant_July2007 () (в большинстве случаев это шаблон functionName_ [datetamp]). Похоже, что когда программиста попросили внести изменение в getSomethingImportant (), он скопирует / вставит, затем переименует в getSomethingImortant_Date, внесет изменения в getSomethingImortant_Date, затем изменит любые вызовы методов в коде на имя нового метода, оставив старый метод в код, но никогда не ссылаться.
Я хотел бы написать простое консольное приложение, которое просматривает один огромный класс и возвращает список всех методов с количеством обращений к каждому методу. По моим оценкам, существует более 1000 методов, поэтому выполнение этого вручную займет некоторое время.
Существуют ли классы в .NET Framework, которые я могу использовать для проверки этого кода? Или любые другие полезные инструменты, которые могут помочь идентифицировать методы, которые объявлены, но на которые никогда не ссылаются?
(Дополнительный вопрос: кто-нибудь еще видел такое приложение на C #, один действительно большой класс? Это более или менее один огромный процедурный процесс, я знаю, что это первый раз, который я видел, по крайней мере такого размера.)