Проверка на съдържанието на компилирани сборки

Надявам се някой да може да ме насочи в правилната посока. Ние сме в процес на преобразуване на някои от полетата в нашата база данни от int в bigint. Това от гледна точка означава, че трябва да актуализираме съответните полета в нашата кодова база от int на long. Проблемът е, че нашата кодова база е МАСИВНА. Имаме стотици проекти и ръчното търсене в тях би било досадно. Така че искам да създам приложение, което, когато е снабдено със сборка, може да търси в целия код за конкретен низ (в този случай името на полето). Използвал съм отражение за извикване на методи и получаване на стойности на свойства и т.н., но мога ли да го използвам за търсене на стойност в действителния код на компилиран асембли? Стойността може да бъде във всичко - свойство, константа, метод и т.н. Разгледах и ildasm, но изглежда не ми предоставя начин за търсене на конкретна стойност на низ. някакви мисли?


person Shane McGarry    schedule 12.06.2014    source източник
comment
Бих предложил да разгледате Roslyn, който е компилатор на Microsoft като услуга. Можете да се свържете с неговото AST (абстрактно синтаксисно дърво), което ще ви помогне да анализирате кода си и да търсите свойства, константи, методи и т.н. Можете да го разгледате тук: msdn.microsoft.com/en-us/vstudio/roslyn.aspx   -  person Yuval Itzchakov    schedule 12.06.2014
comment
Предполагам, че това обяснява как стана масово :/ Това е технически дълг, колкото по-дълго чакате, толкова по-скъпо става. Времето да започнете рефакторинг е днес.   -  person Hans Passant    schedule 12.06.2014


Отговори (2)


Има няколко продукта, които могат да направят това вместо вас:

Рефлекторът на Red Gate (http://www.red-gate.com/products/dotnet-development/reflector/), Платен

JustDecompile на Telerik (http://www.telerik.com/products/decompiler.aspx) , Безплатно

DotPeek на JetBrains (http://www.jetbrains.com/decompiler/), безплатно

Основно използвам Reflector по навик, защото 1.) Платих за него преди известно време и 2.) Използвам го, откакто беше безплатен, толкова труден навик за прекъсване. Може също така да ви позволи да експортирате сглобки директно в изходни файлове и можете да ги манипулирате от там.

person dotnetnate    schedule 12.06.2014

Можете да използвате Reflector за търсене в сглобки.

http://www.red-gate.com/products/dotnet-development/reflector/

person Oscar    schedule 12.06.2014