2010-03-15 83 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(); 

这应该给你的所属类别。

相关问题