Qual è il modo più semplice per attraversare un metodoinfo in C#?Attraversare un metodo C# e anazlye il metodo body
Voglio attraversare il corpo del metodo e trovare i riferimenti di campo e tale e recupera i tipi.
In System.Reflection c'è:
mi.GetMethodBody().GetILAsByteArray()
che è un pò basso livello e richiederebbe "un po '" opera prima che io sarei in grado di attraversare il corpo.
So che Cecil esiste, ma c'è un problema nel caricare un assembly in memoria con cecil. L'assembly con cui sto lavorando è sempre "su disco" può essere un assembly in memoria compilato da es. Boo, e io non trovo una soluzione pulita senza scrivendo l'assembly temporaneamente su disco.
Quali altre alternative ci sono là fuori per questo?
Qual è il problema con Cecil e gli assembly in memoria? –
@Tim: ho trovato questo http://markmail.org/message/yssmfgrsqnnnzrvt, è un po 'vecchio. Non esiste alcun metodo in AssemblyFactory per caricare un assieme esistente solo da file, byte [] o Stream. Ho provato a serializzare un assieme Boo generato in byte [] ma ho ottenuto "Tipo System.Reflection.Emit.AssemblyBuilder non è contrassegnato come serializzabile". Forse sto facendo qualcosa di sbagliato con il recupero di un byte [] da un assembly. – Marcus