Я надеюсь, что кто-то сможет указать мне в правильном направлении. Мы находимся в процессе преобразования некоторых полей в нашей базе данных из int в bigint. В терминах это означает, что нам нужно обновить соответствующие поля в нашей кодовой базе с int на long. Проблема в том, что наша кодовая база ОГРОМНА. У нас сотни проектов, и искать их вручную было бы утомительно. Итак, я хочу создать приложение, которое при наличии сборки может искать во всем коде определенную строку (в данном случае имя поля). Я использовал отражение для вызова методов и получения значений свойств и т. д., но могу ли я использовать его для поиска значения в фактическом коде скомпилированной сборки? Значение может быть чем угодно — свойством, константой, методом и т. д. Я также смотрел на ildasm, но, похоже, он не дает мне способа поиска определенного строкового значения. Есть предположения?
Проверка содержимого скомпилированных сборок
Ответы (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.) Я использую его с тех пор, как он стал бесплатным, поэтому от привычки трудно избавиться. Он также может позволить вам экспортировать сборки непосредственно в исходные файлы, и вы можете манипулировать ими оттуда.
Вы можете использовать Reflector для поиска внутри сборок.
http://www.red-gate.com/products/dotnet-development/reflector/
Roslyn
, который является компилятором Microsoft как сервис. Вы можете подключиться к его AST (абстрактному синтаксическому дереву), которое поможет вам проанализировать ваш код и найти свойства, константы, методы и т. д. Вы можете посмотреть его здесь: msdn.microsoft.com/en-us/vstudio/roslyn.aspx - person Yuval Itzchakov   schedule 12.06.2014