假設我有一個泛型類型的運行時對象和相同類的原始泛型類型,例如,如何從類型參數的泛型類型中提取原始泛型類型
var type = (new List<Int32>()).GetType();
var genericListType = typeof(List<>);
我需要一種方法GetRawGenericType
,使表達
GetRawGenericType(type) == genericListType
返回true。有沒有辦法來實現這個?
備註:
我不知道的對象的類型,它可能是任何泛型類型。 在我寫我必須知道確切的泛型類型,因爲它會被用來作爲一個字典的關鍵,例如代碼:
private readonly Dictionary<Type, TValue> Mapping =
new Dictionary<Type, TValue> {
{typeof(IEnumerable<>), *SomeValue*},
...
}
預先感謝您花費的時間。
BTW您的第一線可能是簡單的'變種類型= typeof運算(名單);' –
AakashM
@AakashM:如果在第一類型線實際上是已知的,那麼整個問題是毫無意義的。這可能類似於'var type = someObjectSentToAMethod.GetType();'。 – Guffa
@Guffa謝謝) – danyloid