Я имею к второму (треть? четвертый?) Погружение В Python . Это является просто большим для справочника и чтения. Как добавленное предложение, прочитанное некоторый код! Это всегда помогает.
new StackFrame(1, true).GetMethod().Name
Обратите внимание, что в сборках выпуска компилятор может встроить вызываемый метод, и в этом случае приведенный выше код вернет вызывающего абонента, поэтому для безопасности вы должны украсить свой метод:
[MethodImpl(MethodImplOptions.NoInlining)]
Это даст вам имя метода, в котором вы находитесь:
string currentMethod = System.Reflection.MethodBase.GetCurrentMethod().Name;
Используйте с осторожностью, поскольку могло произойти снижение производительности.
To get callers:
StackTrace trace = new StackTrace();
int caller = 1;
StackFrame frame = trace.GetFrame(caller);
string callerName = frame.GetMethod().Name;
Для получения имени метода используется обход стека. Значение вызывающего абонента - это то, насколько далеко нужно подняться в стеке вызовов. Будьте осторожны, не заходите слишком далеко.