Ist es möglich, die verweisende Methode in VB.NET zu erhalten?

8

Siehe dieses Beispiel:

%Vor%

Kann ich den Namen "Etwas" in LogInfo finden?

Entschuldigung für die Kürze dieses Beitrags, ich bin mir nicht sicher, wie ich diese Frage richtig formulieren soll. Ich werde klären und nach Bedarf erarbeiten.

    
Anders 03.04.2009, 19:01
quelle

4 Antworten

12

(BEARBEITEN: Die unnötige Verwendung von StackTrace wurde entfernt wäre nützlich, wenn Sie mehr Informationen als nur einen Rahmen drucken möchten.)

Sie können die Klasse StackFrame verwenden, aber sie ist ziemlich teuer (IIRC) und kann aufgrund von Inlining etwas falsch sein.

EDIT: Etwas wie das: (NoInlining ist sicherzustellen, dass es sich richtig verhält ...)

%Vor%     
Jon Skeet 03.04.2009, 19:04
quelle
6

Sehen Sie sich Wie kann ich Suche nach der Methode, die die aktuelle Methode aufgerufen hat? .

Übersetzt nach VB (hoffentlich):

%Vor%     
Quintin Robinson 03.04.2009 19:07
quelle
1

Sie können StackFrame oder StackTrace verwenden. Aber Ihr Verhalten kann sich in Release-Builds anders als im Debugger aufgrund von Inlining ausführen. So sind Ihre Ergebnisse möglicherweise nicht das, was Sie erwarten:

c #:

%Vor%

vb:

%Vor%

Bearbeiten

Entschuldige gerade, dass du nach vb.net gefragt hast. Ich habe meine Antwort bearbeitet, aber die vb-Syntax stimmt möglicherweise nicht richtig

    
JoshBerke 03.04.2009 19:09
quelle
1

System.Reflection.MethodBase.GetCurrentMethod.Name macht das gleiche und ist anscheinend leichter zu verstehen

    
Raj 05.06.2009 08:52
quelle

Tags und Links