0

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

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

我发现这篇文章在 vs 中效果很好。 是否可以在 VB.NET 中获得引用方法? 但不幸的是,我在一个专有应用程序及其 IDE 中工作,我从 StackFrame 获得的输出是 'ExecuteAction at offset 1438 in file:line:column:0:0'。我认为这可能是因为 Jon 在示例中使用的 StackFrame 在调试模式下工作而不是发布。(MSDN 说了一些关于调试模式的事情,但我在这里不是 100% 确定)

还有另一种获取调用方法名称的方法吗?还是我错误地使用了 StackFrame?

提前喝彩。

dno

4

1 回答 1

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

        return frames[1].GetMethod().Name.ToString();
    }

试一试:
这个方法很可能会返回它的调用者的名字,通过一些调整,你不能通过增加帧数组的索引来调整它来嵌套。
祝你好运

于 2012-08-10T00:32:22.770 回答