2015-03-22 3 views
-1

Например, если некоторый класс C# в сборке имеет свойство property, компилятор генерирует методы set_property и get_property, или если есть лямбда, компилятор также генерирует вспомогательный класс c__DisplayClass или что-то в этом роде. Я вижу их, когда разбираю сборку с помощью ILDasm, но ILDasm показывает мне код IL, который не очень удобен для чтения. С другой стороны, если я использую ILSpy или Reflector, они показывают мне код, который я написал, без классов и методов, которые были сгенерированы компилятором. Есть ли какой-либо метод halfway, который позволяет видеть классы и методы, созданные компилятором, но в несколько читаемой форме, по крайней мере, более читабельную, чем IL?Есть ли способ получить код сгенерированного компилятором из сборки .NET в читаемой форме?

+1

Ну, используйте ILSpy или Reflector. Работа, которую они выполняют, преобразовывая IL обратно в читаемый код C#, * очень * нетривиальна и вообще не доступна в библиотеке. –

+0

@HansPassant, но что, если я хочу увидеть, например, только из любопытства, как конкретная лямбда реализована за кулисами? – undermind

ответ

-1

О, мой вопрос оказался довольно глупым, потому что ILSpy, JustDecompile и, я подозреваю, другие декомпиляторы тоже имеют возможность предотвратить декомпиляцию lambdas.

+0

Действительно. По крайней мере, один из них активируется, выбирая код «.NET 2.0», а при выборе более поздней версии - lambdas. –