2009-07-18 22 views
2

Ich habe versucht, die Implementierung der [MethodImpl(MethodImplOptions.InternalCall)] public extern int get_Length();-Funktion zu sehen, die wiederum Length-Eigenschaft von Zeichenfolge ist.Wie Reflektor verwenden, um die Implementierung von .NET-Bibliotheksfunktionen anzuzeigen

Aber gab Reflektor mir folgende Fehlermeldung:

The member is not loaded or may be hidden due to your visibility settings

jedoch das Element geladen und die Sichtbarkeitseinstellungen ist ALL

Antwort

2

ich die extern Methoden glauben, sind diejenigen, die „in der Regel“ andere Verwendung umgesetzt werden DLLs, meist native. Und natürlich, wenn das der Fall ist, sind Sie aus dem Nachdenken heraus!

+0

Wie kann ich dann seine Implementierung sehen? – Learner

+0

Einfache Antwort - Sie können die Implementierung auf der Ebene nicht sehen, was Sie sehen, wenn Sie .NET-Code reflektieren. Sie können jedoch möglicherweise die DLL zerlegen und versuchen, aus den Montageanweisungen Sinn zu machen - aber ich würde nicht dorthin gehen. Was willst du überhaupt erreichen? –

1

Bestimmte sehr wichtige Typen wie String haben viele Methoden, die mit nativem Code implementiert werden. Die Length Eigenschaft von String ist ein solches Beispiel. Dies ist auch aus dem Modifikator extern ersichtlich. Reflector kann Ihnen die Implementierung dieser Methoden nicht zeigen.

+0

Wie kann ich dann seine Implementierung sehen? – Learner

+2

Sie können nicht innerhalb von "Reflektor", da dieser Code nicht mehr IL-Code ist. Der native Assembly-Code, den Sie mit anderen Nicht-.net-Tools zerlegen müssen ... Hinweis: Mit dem "PeID" -Tool können Sie sehen, in welcher Sprache eine Anwendung geschrieben wurde http://www.peid.info/ –

Verwandte Themen