我有一个使用C#开发的网站。我想看一个方法的调用者,即哪个方法/事件处理程序调用我的方法。
假设有一个按钮点击。我想看到如下
btnClick BusinessLayerClass.SaveDocs(int docID, string docType) DataAccessLayerClass.Update()
btnClick BusinessLayerClass.SaveDocs(int docID, string docType) DataAccessLayerClass.Increase()
是否可以看到这样的堆栈信息?请指教..
注意:所有项目都添加为dll。没有像WCF这样的服务。
答案 0 :(得分:4)
可以使用System.Environment.StackTrace
private void button1_Click(object sender, EventArgs e)
{
StackTrace st = new StackTrace(true);
StackFrame[] fram = st.GetFrames();
foreach (StackFrame sf in fram)
{
sf.GetFileColumnNumber();
sf.GetFileLineNumber();
sf.GetFileName();
sf.GetILOffset();
sf.GetMethod();
}
}