在程序中经常想捕获一些东西,有时候想捕获的不是异常,而是系统的某些操作。这个时候就需要捕获这个事件,并了解他的源头。c#提供了栈轨迹的概念。
using (StreamWriter sw = new StreamWriter(path + "//StackTrace.txt", true, Encoding.Default))
{
System.Diagnostics.StackTrace ss = new System.Diagnostics.StackTrace(true);
for (int i = 0; i < ss.FrameCount; i++)
{
Type t = ss.GetFrame(i).GetMethod().DeclaringType;
if (ss.GetFrame(i).GetFileLineNumber() != 0)
{
sw.WriteLine(t.FullName + " " + ss.GetFrame(i).GetFileLineNumber());
}
}
}