在程序中經常想捕獲一些東西,有時候想捕獲的不是異常,而是系統的某些操作。這個時候就需要捕獲這個事件,並瞭解他的源頭。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());
}
}
}