获取正在执行的方法的信息

System.Diagnostics.StackTrace 表示一个堆栈跟踪,它是一个或多个堆栈帧的有序集合。
System.Diagnostics.StackFrame 表示当前线程的调用堆栈中的一个函数调用

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
using System.Diagnostics;
public class test
{
    /// <summary>
    /// 获取正在执行方法的信息
    /// </summary>
    /// <param name="st">一个堆的跟踪</param>
    /// <returns>返回正在执行的方法的有关信息</returns>
    public string GetExecuteMessage(StackTrace st)
    {
        StackFrame sf = st.GetFrame(0);
        string methodName = sf.GetMethod().Name;
        string fileName = sf.GetFileName();
        string fileLineNum = sf.GetFileLineNumber().ToString();
        string fileColumnNum = sf.GetFileColumnNumber().ToString();
        return methodName + fileName + fileLineNum + fileColumnNum;

    }

    private void button2_Click(object sender, EventArgs e)
    {
        //实例化一个堆的跟踪。new StackFrame(true)表示当前线程调用堆中一个函数的调用
        StackTrace st = new StackTrace(new StackFrame(true));
        MessageBox.Show(GetExecuteMessage(st));
    }
}

 

你可能感兴趣的:(windows)