2009-07-07 2 views
0

Kann jemand Meta-Daten aus einer .NET-Assembly extrahieren/generieren wie VS "Go to definition" tun. Wenn Sie dies in Visual Studio tun, erhalten Sie generierte CS-Klassendateien im temporären Verzeichnis mit Meta-Datenklassen.So extrahieren/generieren Sie Metadaten aus einer .NET-Assembly genau wie VS "Go to definition" do

Ich bin auf der Suche nach einer automatischen Möglichkeit, CS-Klassen aus einer Entier Assembly zu extrahieren/generieren.

Gibt es ein Werkzeug dafür? Ich habe ILDASM, BINDUMP, SVCUTIL usw. und eine Reihe von Decompilern betrachtet. Aber ich kann kein Werkzeug finden, um zu tun, was ich will.

Antwort

4

Schauen Sie sich die .NET Reflector: http://www.red-gate.com/products/reflector/

+0

Bereits getan, dass. Versuchte mehrere dieser Software. –

+0

Wenn Sie eine EXE für Sie dekompilieren möchten, dann ist Reflektor das Werkzeug. Es wird die gesamte DLL für Sie dekompilieren. Möglicherweise benötigen Sie eines der Plugins. – Zack

2

VS des Go to Definition verwendet grundsätzlich nur die Standard-.NET reflection API die öffentliche API der Klasse zu extrahieren und präsentieren.

Es gibt keine Dekompilierung erforderlich, um dies zu duplizieren, da die Implementierung nicht zur Verfügung gestellt wird, nur die öffentliche API.

+0

Ja, ich weiß das, aber ich war auf der Suche nach einer Out-of-the-Box-Software/EXE, die für mich die Assembly durchlaufen und CS-Klassen generieren würde. Aber vielleicht muss ich nur ein paar Stunden damit verbringen, die "Schleife" selbst zu schreiben. –

+0

Wenn Sie einen Beispielcode zum Durchsuchen von Typen und zum Extrahieren von Daten benötigen, gibt es hier einige: http://trac.assembla.com/plugintoolkit/browser/ Stamm/Pluto.Core/Entwicklung –