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

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