Cómo obtener información de tipo sin utilizar los genéricos?
Pregunta
Tengo una object obj
que se pasa a un método de ayuda.
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
}
Me han dicho que esto no es un uso correcto de los medicamentos genéricos. ¿Puede alguien decirme si puedo conseguir el mismo resultado sin especificar un tipo genérico? Si es así, ¿cómo?
Yo probablemente cambiar la firma por lo que sería como:
public static MyTag GenerateTag(this HtmlHelper htmlHelper, object obj /*, ... */)
{
Type t = typeof(obj);
// implement GenerateTag
}
Type t = typeof(obj);
pero es imposible.
¿Alguna sugerencia?
Gracias
David
Solución
Type t = obj.GetType();
A pesar de que yo no creo que haya ningún problema con lo que tienes en este momento.
Otros consejos
¿Qué pasa con sólo hacer:
Type t = obj.GetType();
Eso te dará la TypeInfo.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow