2010-03-15 118 views
1

我有一個object obj傳遞給輔助方法。如何在不使用泛型的情況下獲取類型信息?

public static MyTagGenerateTag<T>(this HtmlHelper htmlHelper, T obj /*, ... */) 
{ 
    Type t = typeof(T); 

    foreach (PropertyInfo prop in t.GetProperties()) 
    { 
     object propValue = prop.GetValue(obj, null); 
     string stringValue = propValue.ToString(); 
     dictionary.Add(prop.Name, stringValue); 
    } 

    // implement GenerateTag 
} 

我被告知這不是泛型的正確使用。有人可以告訴我,如果我可以在沒有指定泛型的情況下獲得相同的結果嗎?如果是這樣,怎麼樣?

我可能會更改簽名所以它會像:

public static MyTag GenerateTag(this HtmlHelper htmlHelper, object obj /*, ... */) 
{ 
    Type t = typeof(obj); 
    // implement GenerateTag 
} 

Type t = typeof(obj);是不可能的。

有什麼建議嗎?

感謝

戴夫

+1

它背後的原因是什麼,它不是一個正確的使用? – 2010-03-15 21:20:41

回答

10

Type t = obj.GetType();

雖然我不認爲有任何問題,你有什麼的時刻。

1

大約只是在做什麼:

Type t = obj.GetType(); 

這應該給你的所屬類別。

相關問題