3 Stimmen

Kann ich den Namen der Methode herausfinden, die ich verwende?

Angenommen, ich habe einen Code wie

namespace Portal
{
  public class Author
    {
        public Author() { }
        private void SomeMethod(){
          string myMethodName = ""; 
          //  myMethodName = "Portal.Author.SomeMethod()";
        }
    }
}

Kann ich den Namen der Methode herausfinden, die ich verwende? In meinem Beispiel würde ich gerne programmatisch myMethodName auf den Namen der aktuellen Methode (d.h. in diesem Fall "Portal.Author.SomeMethod" ).

Danke

14voto

leppie Punkte 111830
MethodInfo.GetCurrentMethod().Name

3voto

StingyJack Punkte 18514

System.Reflection.MethodBase.GetCurrentMethod().Name

2voto

Brian Genisio Punkte 47135

MethodBase.GetCurrentMethod()

2voto

mookid8000 Punkte 17753

System.Diagnostics a le StackFrame / StackTrace mit dem Sie genau das und noch mehr tun können. Sie können den gesamten Aufrufstapel wie folgt untersuchen:

StackFrame stackFrame = new StackFrame(1, true); //< skip first frame and capture src info
StackTrace stackTrace = new StackTrace(stackFrame);
MethodBase method = stackTrace.GetMethod();
string name = method.Name;

1voto

Ian G Punkte 28438

Während @leppie mich auf die richtige Spur brachte, gab er mir nur den Namen der Methode, aber wenn Sie sich meine Frage ansehen, werden Sie sehen, dass ich Namespace- und Klasseninformationen aufnehmen wollte...

also

myMethodName = System.Reflection.MethodBase.GetCurrentMethod().ReflectedType + 
                 "." + System.Reflection.MethodBase.GetCurrentMethod().Name;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X