如何在不使用泛型的情况下获取类型信息?

时间:2010-03-15 21:13:04

标签: c# generics typeinfo

我有一个传递给帮助方法的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);是不可能的。

有什么建议吗?

由于

戴夫

2 个答案:

答案 0 :(得分:10)

Type t = obj.GetType();

虽然我认为你现在所拥有的东西没有任何问题。

答案 1 :(得分:1)

刚刚做的事情:

Type t = obj.GetType();

那应该给你TypeInfo。