Array
(
)

Criando uma instancia a partir de uma variavel string

Rodrigofonseca
   - 08 mar 2006

Galera,

Estou tentando criar instancias de classes dinamicamente e por isso não estou conseguindo criar uma determinada instancia a partir de uma veriavel string.

Abaixo segui o exemplo:

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{/

// Posso atribuir a esta variavel qualquer nome de classe valida.
string nomeClass = ´Pessoa´;

object p = new nomeClass(); //Nao consigo criar esta instancia!
}
}
}

Desde já agradeço a atenção.
Atenciosamente,
Rodrigo

Rjun
   - 09 mar 2006

Sua classe está no mesmo assembly? Você pode fazer isso através de Reflection.

#Código

Assembly.GetExecutingAssembly().CreateInstance(nomeDaClasse);


Rodrigofonseca
   - 10 mar 2006

Oi Rogerio,

Sim, a minha classe esta no mesmo assembly!
Tente como vc sugeriu e não deu certo!

Valeu pela ajuda.
Rodrigo

Rodrigofonseca
   - 10 mar 2006

Rogério,
Consegui resolver o probema, mas tive também que concatenar o nome da namespace ao nome da string.
Abaixo segue o código.

using System;
using System.Collections.Generic;
using System.Text;

namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string nomeClass = ´ConsoleApplication1 .Pessoa´;
Pessoa p = (Pessoa)Assembly.GetExecutingAssembly().CreateInstance(nomeClass);
}
}
}

Valeu pela ajuda.
Rodrigo