2009-07-30 18 views
4

是否有任何方法可以在靜態構造函數中獲取GetType的等價物?在靜態構造函數中獲取TypeInfo

我想遍歷靜態構造函數中類型的可用屬性,但GetType是一個實例方法?爲什麼是這樣? typeinfo應該存在於靜態上下文中。有沒有解決的辦法?

回答

2

只需使用

Type type = typeof(TheCurrentType); 

它不應該是比這更復雜,因爲你總是知道實際的類型;在靜態方法中沒有多態性需要處理。

+0

但是我必須知道運行時類型。我想註冊從這個類繼承的所有運行時類型(在運行時),我必須遍歷所有的屬性和屬性,並將它們註冊到一個定製引擎中,這必須在應用程序生命週期內每種類型執行一次,對於每個子類,是否有解決運行時類型的方法? – Shimmy 2011-06-09 20:10:01

0

我不認爲你可以得到派生類型(除了遍歷所有類型以查看來自當前類型的派生類型)。要獲得當前類型,您可以:

Type currentType = (new StackFrame()).GetMethod().DeclaringType;