none
Como converter um Type ou typeof para <T> RRS feed

  • Pergunta

  • A função JavaScriptSerializer recebe um tipo <T> exemplo:

    JavaScriptSerializer jav = new JavaScriptSerializer();
    return jav.Deserialize<T>(s);
    

    Sendo assim se eu passar um tipo de uma classe ele deserializa como um objeto para mim exemplo:

    JavaScriptSerializer jav = new JavaScriptSerializer();
    return jav.Deserialize<Minha_Classe>(s);
    


    Mas em uma determinada situação eu preciso que ele crie a classe com base no nome da classe, então eu tentei fazer o seguinte

    Type tp = System.Type.GetType("Namespace_da_Minha_Classe.Nome_da_Minha_Classe");
    
    JavaScriptSerializer jav = new JavaScriptSerializer();
    var ObjetoInstanciado = jav.Deserialize<tp>(s);
    


    Mas ele não aceita colocar o trecho "<tp>" pois esta variável tp não é o mesmo que o tipo <T>

     

    Como resolver esta situação?

    quinta-feira, 24 de novembro de 2011 11:13

Respostas

Todas as Respostas

  • Veja se isso ajuda:

    http://stackoverflow.com/questions/130208/whats-the-best-way-to-instantiate-a-generic-from-its-name

    http://stackoverflow.com/questions/325156/calling-generic-method-with-a-type-argument-known-only-at-execution-time

    Se ajudou, por favor poste o código corrigido e marque como resposta.

    Abs.


    HJ
    • Sugerido como Resposta hamiltonj quinta-feira, 1 de dezembro de 2011 13:01
    sexta-feira, 25 de novembro de 2011 16:25
  • Passe só assim:

     jav.Deserialize(s);

    Quem sabe um dia os DataSets se extinguirão?
    terça-feira, 29 de novembro de 2011 02:57
  • resolvi assim:

    var ObjetoInstanciado = jav.Deserialize(s,tp);

    t+

    • Marcado como Resposta Rick Sam quarta-feira, 21 de dezembro de 2011 21:53
    quarta-feira, 21 de dezembro de 2011 21:53