在VB.net中获取引用方法

时间:2012-08-09 01:27:59

标签: vb.net

我正在尝试在vb.net中获取引用方法。

e.g。我有一个处理电子邮件的通用方法(sendMail),任何其他方法都可以调用它。我希望sendMail在发送电子邮件时登录数据库的条目。在这个 log 中,我想要调用sendMail的方法的名称。我可以通过传递paramaters来做到这一点,但我想知道sendMail是否可以访问调用它的方法的名称。

我发现这篇文章在vs中非常有用 Is it possible to get the referring method in VB.NET? 但不幸的是我正在使用专有应用程序,他们的IDE和我从StackFrame获得的输出是'ExecuteAction at offset 1438 in file:line:column:0:0'。我想这可能是因为Jon在示例中使用的StackFrame在调试模式下工作而不是发布。 (MSDN说了一些关于调试模式但我不是100%肯定的)

是否有另一种获取调用方法名称的方法? 或者我错误地使用StackFrame?

提前干杯。

DNO

1 个答案:

答案 0 :(得分:0)

    public string GetStackTrace()
    {
        StackTrace st = new StackTrace(true);
        StackFrame[] frames = st.GetFrames();

        return frames[1].GetMethod().Name.ToString();
    }
试一试:
这种方法很可能会返回其调用者的名称,只需进行一些调整,你就不能通过增加frame数组的索引来调整它。 祝你好运