C#獲取調用DLL的類名稱
下午 04:26 2011/2/14
想知道是哪個類調用了這個DLL。
在Log里需要記錄異常發生在哪個類里,看了subText是這樣寫的。
[MethodImpl(MethodImplOptions.NoInlining)]
private static Type GetCallerType()
{
return new StackFrame(2, false).GetMethod().DeclaringType;
}
MSDN 曰:
- StatckFrame 用途
提供 StackFrame 的相關資訊,表示目前執行緒的呼叫堆疊上的函式呼叫。
- StackFrame 有四個構造函數
名稱 說明
StackFrame () 初始化新的 StackFrame 物件。
StackFrame (Boolean) 初始化新的 StackFrame 物件,可以選擇性地擷取來源資訊。
StackFrame (Int32) 初始化新的 StackFrame 物件,對應至現用堆疊框架上的框架。
StackFrame (Int32, Boolean) 初始化新的 StackFrame 物件,對應至現用堆疊框架上的框架,可以選擇性地擷取來源資訊。
StackFrame (String, Int32) 初始化新的 StackFrame 物件,只包含提供的檔案名稱和行號。
StackFrame (String, Int32, Int32) 初始化新的 StackFrame 物件,只包含提供的檔案名稱、行號和資料行編號。
其中StackFrame (Int32, Boolean)參數涵義為:
skipFrames
要略過的堆疊上的框架數。
fNeedFileInfo
若要擷取檔名、行數和欄數,則為 true,否則為 false。
學習資料
http://lovecherry.cnblogs.com/archive/2005/04/10/135175.html
SubText src
多看源碼,多動手實踐