Freigeben über


Я разглядел своими маленькими глазками(*) … ILSpy

Грег Дункан

clip_image002

Какое бы время вы не занимались .NET-разработкой, вы наверняка слышали о программе .Net Reflector. Эта утилита декомпилирует .NET-сборки и позволяет видеть их как код C#/VB. Я не могу вспомнить, сколько раз эта программа спасала мою шкуру.

Недавно .Net Reflector перешла с модели свободного распространения (хотя она никогда не предоставляла исходный код) к платному распространению. Это поставило перед сообществом задачу поиска альтернатив с открытым исходным кодом.

Одним из самых популярных проектов стал ILSpy.

clip_image004

ILSpy является браузером и декомпилятором .NET-сборок.

Возможности ILSpy

  • Просмотр сборок
  • Дизассемблирование IL-кода
  • Декомпиляция в C#
  • Поддержка лямбда-выражений и оператора 'yield return'
  • Сохранение ресурсов
  • Поиск типов, методов и свойств (подстроки)
  • Гиперссылочная навигация среди типов, методов и свойств
  • Навигация по базовым и производным типам
  • История навигации
  • Декомпилятор BAML в XAML
  • Сохранение сборки в виде проекта C#
  • Нахождение мест использования полей и методов
  • Расширяемость с помощью плагинов (MEF)

И хотя .Net Reflector потрясающий инструмент, нет ничего лучше, чем получить исходный код, чтобы видеть исходный код…clip_image006

Говоря об исходнике, загрузка проекта, его компиляция и запуск проходят без проблем. Загружайте его, разархивируйте и просто работайте.

clip_image008

Прелесть в том, что можно видеть всё. Ничто не скрывается…

clip_image010

И это проект не только обеспечивает функциональность ILSpy, но также является реальным примером использования WPF-элемента управления для редактирования текста – ic#code AvalonEdit.

Это одно средство для просмотра внутренностей exe- и dll-файлов среды .NET. Есть еще кое-что с исходными кодами проекта, позволяющего вам выполнять просмотр…

 

(*) Прим. перев. Первая часть оригинального названия сообщения – I spy with my little eye... является названием популярной детской игры, заключающейся в загадывании одним игроком определенного предмета, который должен отгадать другой игрок.