是否有可能告訴哪個文件在C#中實例化了一個類?例如,如果我有Page1.cs和Page2.cs,myclass.cs中的構造函數可以知道哪個頁面從中創建了對象嗎?
3 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
一個班級可以通過檢查構造期間的堆棧跟蹤來了解哪個班級實例化了它。因此,例如,如果要將其添加到類的構造函數中:
var creator = new StackTrace().GetFrame(1).GetMethod().DeclaringType.FullName;
...您將了解調用的代碼的位置new
。位置與班級名稱相同。您當然可以檢查聲明類型的屬性,以了解程序集名稱,位置等。
請記住,如果您鏈接了構造函數,則必須將堆??蚣茏叩酶h。同樣,這對于通過反序列化創建的任何對象均無效。
- 3 回答
- 0 關注
- 153 瀏覽
添加回答
舉報
0/150
提交
取消