febbraio 5, 2009 0

Come far crashare Reflector

By in Informatica, Programmazione
closeQuesto articolo è stato pubblicato 3 anni 5 giorni giorni fa quindi alcuni contenuti o informazioni presenti in esso potrebbero non essere più validi.

Stasera stavo smanettando con la reflection di .NET. Le potenzialità sono davvero enormi. Tra le molte funzionalità è possibile creare dinamicamente codice .NET a run-time grazie ai vari oggetti Builder e all’ILGenerator.

Dopo varie prove creo il mio primo assembly con all’interno la mia prima banalissima classe, tutto a run-time. Salvo il tutto nel file MyTestAssembly.dll. Tutto funziona alla grande! Apro per curiosità con Reflector l’assembly appena generato. Eseguo la funzione Disassemble sul mio type e fin qui tutto bene. Vedo il listato collassato della mia simpatica classe creata dinamicamente. Fin qui una figata :-D

Clicco in fine su Expand Methods, per vedere in dettaglio il sorgente dei metodi, e BAM! Per la prima volta vedo crashare Reflector! Allego l’immagine per gli increduli.

reflector_crash

Non ci posso credere, Reflector che crasha sulla mia classe creata dinamicamente! Eppure la mia classe è perfettamente conforme alle specifiche IL. Tanto più che, se così non fosse, l’AssemblyBuilder non mi avrebbe permesso il salvataggio del codice creato su file. Come tra l’altro è più volte successo quando sbagliavo qualcosa. Nei prossimi giorni indagherò sul mistero!

Riferimenti

http://msdn.microsoft.com/en-us/library/f7ykdhsy(VS.71).aspx

http://www.red-gate.com/products/reflector/

http://msdn.microsoft.com/en-us/library/system.reflection.emit.ilgenerator.aspx

Technorati Tags: ,,

Tags: , ,

Leave a Reply