Duplicata possible:
Comment puis-je trouver la méthode qui a appelé la méthode actuelle?
Comment puis-je obtenir le nom de la fonction appelante à partir de la fonction appelée en c #?
new StackFrame(1, true).GetMethod().Name
Notez que dans les versions, le compilateur peut incorporer la méthode appelée, auquel cas le code ci-dessus retournerait l'appelant de l'appelant, donc pour être sûr, vous devez décorer votre méthode avec:
[MethodImpl(MethodImplOptions.NoInlining)]
Cela vous donnera le nom de la méthode dans laquelle vous vous trouvez:
string currentMethod = System.Reflection.MethodBase.GetCurrentMethod().Name;
À utiliser avec prudence car il pourrait y avoir un impact sur les performances.
To get callers:
StackTrace trace = new StackTrace();
int caller = 1;
StackFrame frame = trace.GetFrame(caller);
string callerName = frame.GetMethod().Name;
Cela utilise une marche de pile pour obtenir le nom de la méthode. La valeur de l'appelant est jusqu'où remonter la pile d'appels. Attention à ne pas aller trop loin.