Frage

Ich war etwas Framework-Code zu untersuchen (die System.AppDomain.GetDynamicDir-Methode) und das war alles der Assembler zeigte:

[MethodImpl(MethodImplOptions.InternalCall)]
private extern string GetDynamicDir();

Was passiert, wenn diese Methode aufgerufen wird? Ich habe nicht dieses spezielle Verfahren bedeuten, aber Methoden mit diesem Attribute im Allgemeinen.

War es hilfreich?

Lösung

MSDN :

  

MethodImplOptions.InternalCall : Gibt eine interne   Anruf. Ein interner Anruf ist ein Anruf an eine   Verfahren, die innerhalb der durchgeführt wird   Common Language Runtime selbst.

Also im Grunde die CLR eine eigene Implementierung dieses Verfahrens stellt (was wahrscheinlich in nativen Code ist), weshalb man es nicht in dem Disassembler sehen kann.

Andere Tipps

hier :

  

(...)    MethodImplOptions.InternalCall wird verwendet,   in Verbindung mit extern das zu sagen,   Laufzeit, die das Verfahren implementiert ist,   intern innerhalb des Systems selbst.   Dies ist für viele der Kern .NET getan   Framework-Methoden, die besser   serviert von in umgesetzt   nicht verwalteten Code. Zum Beispiel sind viele von   die Methoden auf die String , GC , und   Math Klassen sind markiert als    InternalCall . Wie Sie bemerkt haben,    Guid.CompleteGuid ist auch ein    InternalCall .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top