查找调用方法的类

时间:2011-05-24 12:15:38

标签: c#

大家好 项目中有2个类 头等舱是一种形式。就像这样。

  public partial class Form3 : Form
    {
        public Form3()
        {
            InitializeComponent();
        }
        private void Form3_Load(object sender, EventArgs e)
        {

        }
    }
}

//和另一类这样的

public class Sample
{
public void MyMethod()
{
//My Codes
}
}

现在我想了解这一点 当我在Form3或其他类中调用MyMethod时,我想知道哪个类叫MyMethod? 感谢。

4 个答案:

答案 0 :(得分:3)

在运行时,您可以使用以下代码检查方法名称和声明类型。

 StackTrace trace=new StackTrace();
            StackFrame[] stackFrames = trace.GetFrames();
            foreach (var stackFrame in stackFrames)
            {
                string methodName= stackFrame.GetMethod().Name;
                string declearingClass=stackFrame.GetMethod().DeclaringType.Name;

            }

你可以跳过第一帧来确切地知道你的函数从哪里调用

StackFrame[] stackFrames = trace.GetFrames().Skip(1).ToArray();

答案 1 :(得分:1)

接受一个类型对象作为参数之一。

public class Sample
{
    public void MyMethod(Type CallerType)
    {
        //My Codes 
    } 
} 

当您调用该方法调用时

SampleObj.MyMethod(this.gettype());

答案 2 :(得分:0)

1)在MyMethod()

中放置一个断点

2)运行您的应用程序

3)等到该断点到达

4)看看堆栈跟踪

或者:

1)在MyMethod中抛出并捕获异常

2)打印异常堆栈跟踪

答案 3 :(得分:0)

在visual studio中,右键单击MyMethod - >查找所有参考文献。

或者,CTRL-K,R,光标在方法上。