VB.net中的获取引用方法

VB.net中的获取引用方法,vb.net,Vb.net,我试图在vb.net中获得引用方法 e、 我有一个通用方法(sendMail)来处理用户的电子邮件,任何其他方法都可以调用它。我希望sendMail在发送电子邮件时将一个条目记录到数据库中。在此日志中,我需要调用sendMail的方法的名称。我可以通过传递参数来实现,但我想知道sendMail是否可以访问调用它的方法的名称 我发现这篇文章在vs中非常有效 但不幸的是,我在一个专有应用程序及其IDE中工作,我从StackFrame得到的输出是“在file:line:column:0:0中偏移量14

我试图在vb.net中获得引用方法

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

我发现这篇文章在vs中非常有效 但不幸的是,我在一个专有应用程序及其IDE中工作,我从StackFrame得到的输出是“在file:line:column:0:0中偏移量1438处执行”。我认为这可能是因为Jon在示例中使用的StackFrame在调试模式下工作,而不是在发布模式下工作。(MSDN提到了调试模式,但我这里不是100%确定)

是否有其他获取调用方法名称的方法? 还是我使用StackFrame不正确

提前欢呼

dno

试试看:
此方法很可能返回其调用方的名称,只需稍作调整,您就无法通过增加帧数组的索引来调整它以嵌套回调用方。

祝你好运,请原谅我的无知。我是DBA。不是.NET开发人员。此代码示例适用于c#?是这样吗?你完全正确,两种语言中的名称空间都是一样的。如果你还有其他问题的话,那没什么区别。我准备好了。我可能忘了提到您应该包括System.Diagnostics VB:imports System.Diagnostics C#:using System.Diagnostics
    public string GetStackTrace()
    {
        StackTrace st = new StackTrace(true);
        StackFrame[] frames = st.GetFrames();

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