Например, если некоторый класс C# в сборке имеет свойство property
, компилятор генерирует методы set_property
и get_property
, или если есть лямбда, компилятор также генерирует вспомогательный класс c__DisplayClass
или что-то в этом роде. Я вижу их, когда разбираю сборку с помощью ILDasm, но ILDasm показывает мне код IL, который не очень удобен для чтения. С другой стороны, если я использую ILSpy или Reflector, они показывают мне код, который я написал, без классов и методов, которые были сгенерированы компилятором. Есть ли какой-либо метод halfway, который позволяет видеть классы и методы, созданные компилятором, но в несколько читаемой форме, по крайней мере, более читабельную, чем IL?Есть ли способ получить код сгенерированного компилятором из сборки .NET в читаемой форме?
-1
A
ответ
-1
О, мой вопрос оказался довольно глупым, потому что ILSpy, JustDecompile и, я подозреваю, другие декомпиляторы тоже имеют возможность предотвратить декомпиляцию lambdas.
+0
Действительно. По крайней мере, один из них активируется, выбирая код «.NET 2.0», а при выборе более поздней версии - lambdas. –
Ну, используйте ILSpy или Reflector. Работа, которую они выполняют, преобразовывая IL обратно в читаемый код C#, * очень * нетривиальна и вообще не доступна в библиотеке. –
@HansPassant, но что, если я хочу увидеть, например, только из любопытства, как конкретная лямбда реализована за кулисами? – undermind