Можно ли получить метод имени, который вызывает другой метод? - PullRequest
1 голос
/ 24 марта 2009

Вот о чем я говорю:

Public Shared Sub Test1()
    Test2()
End Sub

Public Shared Sub Test2()
    MsgBox(Test2.LastMethod) ' Test1
End Sub

Я бы подумал, если это возможно, System.Reflection будет использоваться?

Есть мысли?

Ответы [ 3 ]

7 голосов
/ 24 марта 2009

Посмотрите на класс System.Diagnostics.StackFrame.

 StackFrame frame = new StackFrame(1);
 MethodBase method = frame.GetMethod();
 Console.WriteLine(method.Name);

В качестве дополнительного примечания вы не должны зависеть от того, кто вы звоните, и не должны использовать это, если вы не пишете отладчик или не ведете журнал.

1 голос
/ 24 марта 2009
Dim stackFrame As New Diagnostics.StackFrame(1)
stackFrame.GetMethod.Name.toString() & stackFrame.GetMethod.DeclaringType.FullName.tostring()

Должен дать вам полное имя.

0 голосов
/ 24 марта 2009

Этот вопрос должен помочь:
Можете ли вы использовать отражение, чтобы найти имя выполняемого в данный момент метода?

Будьте осторожны, как вы это делаете. Если ваш метод является JIT-встроенным, вы можете увидеть неправильный метод.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...