2009-01-06 22 views
10

Es gibt eine GetILAsByteArray-Methode in der MethodBody-Klasse, die den Rumpf einer Methode angibt. Ich bin auf der Suche nach der Konvertierung dieses Byte-Array in verständlicher IL-Anweisungen (in eine Liste oder so ähnlich). Welche Ressourcen, Open Source Code oder API verfügbar sind, um mir zu helfen, dieses Byte-Array zu verstehen und zu konvertieren (oder tue es für mich)?API zum Abrufen von IL aus Bytearray

Ich fand dies, aber es funktioniert nicht mit Generika. Ich bin ziemlich auf der Suche nach Anleitung zum Konvertieren dieser Bytes in allen Framework-Versionen.

CLI-Dokumentation ist auch hilfreich für das Lernen von IL-Anweisungen, aber ich kann nicht sehen, wie man es verwendet, um diese Bytes sinnvoll zu machen.

+0

Hallo Serhat, könntest du entweder mehr Informationen anfordern oder eine Antwort akzeptieren? –

Antwort

1

Es ist ein großes Unternehmen. Ich schrieb die Starts eines IL-Lesers und es hatte eine ziemlich gute Menge von Opcodes implementiert: aber Sie müssen es beenden.

http://svn.ensemble-os.org/tags/OldOCJ/CIL/

Es gibt auch MONO Cecil, das Feature-komplett ist.

2

Schauen Sie sich die Mono.Cecil-Bibliothek an.

8

Ich habe gerade eine Erweiterungsmethode geschrieben, um eine verständlichere Liste von Anweisungen mit GetILAsByteArray zu erhalten. Es ist ganz einfach, die API ist wie:

public static IList<Instruction> GetInstructions (this MethodBase self); 

Sie mehr über die Implementierung in meinem blog post lesen kann. Oder du kannst die implementation nehmen und sie benutzen.

+0

Mein Tag gerettet ... – mark

Verwandte Themen