Использование API Reflector для получения декомпилированного исходного кода - PullRequest
4 голосов
/ 25 декабря 2011

Я ищу какой-то фреймворк, который позволяет декомпилировать сборку .NET для получения исходного кода.

Я знаю, что Reflector предлагает какой-то API для выполнения операций над сборками, когда я его использовал, мне кажется, что я получаю только инструкции IL, а не исходный код.

То, что я хотел бы сделать, это установить какой-нибудь умный необработанный обработчик исключений, который даст мне ошибочные строки кода (для целей внутренней отладки).

Возможно ли это с помощью Reflector API? какие еще инструменты доступны для этой цели?

Ответы [ 3 ]

3 голосов
/ 27 декабря 2011

Я написал пару статей, которые могут помочь вам в этом.

http://www.simple -talk.com / dotnet / .net-framework / -. Net-рефлектор-meet-the-codedom / говорит о создании вашего собственного языка для Reflector, чтобы его можно было разобрать.Это полезно для обхода языковых структур, которые выдает Reflector.

http://www.simple -talk.com / dotnet / .net-tools / hosting-.net-отражатель-в-вашем-собственном-application / говорит о размещении Reflector в вашем собственном коде для использования API.Это проведет вас через процесс доступа к API в отражателе и доступа к его логике.

Я надеюсь, что это поможет, по крайней мере, указать вам направление, чтобы получить то, что вам нужно.

2 голосов
/ 25 декабря 2011

Вы можете взглянуть на (с открытым исходным кодом) ILSpy . Поскольку они могут делать то, что вам нужно, и они также предоставляют исходный код, вы должны принять это за отправную точку.

0 голосов
/ 26 декабря 2011

Я не уверен, что понимаю, что вам нужно, но если вы хотите получить во время выполнения информацию о том, где произошло исключение, вы можете использовать классы StackTrace и StackFrame, найденные в пространстве имен System.Diagnostics, для получения информации из стек вызовов. Но, к сожалению, вы не получите исходный код в виде открытого текста.

...