Pergunta

eu tenho um object obj que é passado para um método auxiliar.

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
}

Disseram -me que este não é um uso correto de genéricos. Alguém pode me dizer se eu posso alcançar o mesmo resultado sem especificar um tipo genérico? Se sim, como?

Eu provavelmente mudaria a assinatura para que fosse:

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

mas Type t = typeof(obj); é impossível.

Alguma sugestão?

Obrigado

Dave

Foi útil?

Solução

Type t = obj.GetType();

Embora eu não ache que não haja algum problema com o que você tem no momento.

Outras dicas

Que tal apenas fazer:

Type t = obj.GetType();

Isso deve dar a você o tipoInfo.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top