Получить имя функции вызова от вызываемой функции
Возможный дубликат:
Как найти метод, который вызвал текущий метод?
Как я могу получить имя вызывающей функции из вызываемой функции в С#?
Ответы
Ответ 1
new StackFrame(1, true).GetMethod().Name
Обратите внимание, что в выпуске сборки компилятор может встроить вызываемый метод, и в этом случае вышеуказанный код вернет вызывающего абонента, поэтому, чтобы быть в безопасности, вы должны украсить свой метод:
[MethodImpl(MethodImplOptions.NoInlining)]
Ответ 2
Это даст вам имя метода, в котором вы находитесь:
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;
Это использует стек, чтобы получить имя метода. Значение вызывающего абонента заключается в том, как далеко до стека вызовов идти. Будьте осторожны, чтобы не зайти далеко.