Obtenir le nom de la fonction appelante à partir de la fonction appelée

Dupliquer 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 release, le compilateur peut intégrer la méthode appelée, auquel cas le code ci-dessus renvoie l’appelant de l’appelant. Par conséquent, pour plus de sécurité, 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:

 ssortingng currentMethod = System.Reflection.MethodBase.GetCurrentMethod().Name; 

Utilisez avec prudence car il pourrait y avoir un impact négatif sur les performances.

 To get callers: StackTrace trace = new StackTrace(); int caller = 1; StackFrame frame = trace.GetFrame(caller); ssortingng callerName = frame.GetMethod().Name; 

Cela utilise une stack de chemin pour obtenir le nom de la méthode. La valeur de l’appelant est la distance jusqu’à laquelle va la stack d’appels. Attention à ne pas aller trop loin.