Как я могу получить имя вызывающей функции из вызываемой функции в С#?
Ответ 1
new StackFrame(1, true).GetMethod().Name
Обратите внимание, что в выпуске сборки компилятор может встроить вызываемый метод, и в этом случае вышеуказанный код вернет вызывающего абонента, поэтому, чтобы быть в безопасности, вы должны украсить свой метод:
Следует использовать с осторожностью, так как может быть удар по производительности.
To get callers:
StackTrace trace = new StackTrace();
int caller = 1;
StackFrame frame = trace.GetFrame(caller);
string callerName = frame.GetMethod().Name;
Это использует стек, чтобы получить имя метода. Значение вызывающего абонента заключается в том, как далеко до стека вызовов идти. Будьте осторожны, чтобы не зайти далеко.