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

Dav*_*Dev 1 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
}
Run Code Online (Sandbox Code Playgroud)

我被告知这不是对泛型的正确使用.有人可以告诉我,如果我没有指定泛型类型就能达到相同的结果吗?如果是这样,怎么样?

我可能会更改签名,所以它会像:

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

但是Type t = typeof(obj);不可能.

有什么建议?

谢谢

戴夫

Lee*_*Lee 10

Type t = obj.GetType();

虽然我不认为你现在有什么问题.