2009-06-25 22 views
5

Esiste un modo in .NET 3.0 (o precedente) per ottenere una rappresentazione stringa di un metodo? So che posso ottenere un array di byte IL da un oggetto MethodBody, ma sono interessato a ottenere una stringa che rappresenta essenzialmente il corpo del metodo così come appare ai miei occhi in VS.C# Rappresentazione stringa del metodo

Ho esplorato lo spazio dei nomi CodeDom per vedere se c'era un modo per convertire i metodi in CodeMemberMethods in fase di runtime, ma finora mi sono arenato.

Qualche idea?

risposta

12

Questo è un lavoro molto complesso. Fondamentalmente, staresti cercando di riscrivere lo reflector nel tuo codice ... e non dimenticare che non tutti gli IL possono essere invertiti.

La risposta breve è "no, niente incorporato".

Anche gli alberi di espressione (da lambda) non possono essere completamente invertiti di nuovo alle stringhe appropriate facilmente.

2

Provate a curiosare con Reflector API (potreste voler controllare se è ancora disponibile dopo che Red Gate ha preso il controllo).

Ancora, anche se ci si riesce, si perdono alcune delle informazioni originali come nomi di variabili locali, commenti o formattazione.

Fondamentalmente tutto ciò che viene buttato via durante la compilazione viene perso per sempre.

Problemi correlati