Подтвердить что ты не робот

Получить имя функции вызова от вызываемой функции

Возможный дубликат:
Как найти метод, который вызвал текущий метод?

Как я могу получить имя вызывающей функции из вызываемой функции в С#?

4b9b3361

Ответ 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;

Это использует стек, чтобы получить имя метода. Значение вызывающего абонента заключается в том, как далеко до стека вызовов идти. Будьте осторожны, чтобы не зайти далеко.