1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Dúvida C#

Discussão em 'Programação' iniciada por xteves, 12 de Setembro de 2006. (Respostas: 3; Visualizações: 633)

  1. xteves

    xteves Power Member

    Ola,
    Preciso de saber como é que eu crio um objecto do tipo Type.
    Explicando um pouco o que pretendo, eu tenho um método que gera
    informação dependente do tipo de objecto que se pretende. A
    identificação sobre o Tipo de objecto é recebida por parametros. Dados
    necessários, como FullName, Namespace, etc... Agora o meu problema
    está em não conseguir criar o objecto TYPE que representa o tipo de
    objecto a ser tratado. Será que alguém me consegue ajudar?

    Aguardo por uma resposta...
    Obrigado
    Xteves
     
  2. SoundSurfer

    SoundSurfer Power Member

    Boas... agora não tenho tempo para ajudar, mas dá uma vista de olhos no namespace System.Reflection.
     
  3. NoMercy

    NoMercy Power Member

    porque é que não tentas algo assim:

    Código:
    public object CriaObjectoXpto(ref Type pTipoObjecto)
            {
                object obj = Activator.CreateInstance(pTipoObjecto);
                pTipoObjecto = obj.GetType();
                return obj;
            }
    
    //chama a funcção assim (por exemplo, para um ArrayList):
    using System.Collections;
    
    Type tipo = typeof(ArrayList);
    object x = CriaObjectoXpto(ref tipo);
    
    Ou, mais simples (em cima fiz mais passos para se perceber melhor):
    Código:
    //(por exemplo, para um ArrayList):
    object x = Activator.CreateInstance(typeof(System.Collections.ArrayList));
    
     
  4. xteves

    xteves Power Member

    Olá,
    já consegui resolver o problema.
    a solução era mais simples do que se pensava, bastava criar um object Type da seguinte forma:

    Type tipo = Type.GetType("Nomedoproject.Modelos.TipoPretendido, Nomedoproject.Modelos");

    de qualquer maneira, obrigado...

    Cumprimentos
    Xteves
     

Partilhar esta Página