A ver si esto se puede hacer

09/12/2006 - 18:32 por Francisco Matamoros | Informe spam
Hola, lo voy a poner con un ejemplo porque no me voy a explicar bien de otro
modo.
Tengo esto:

string pepe = "int",
o string pepe = "decimal"
y quiero crear una variable del tipo contenido en pepe
en tiempo de ejecución
sería a lo bestia tal que así:
pepe variable nueva = new pepe();
pero, claro de este modo es una burrada.
¿Se puede hacer esto?
Gracias
Es para que se abra un editor de informes de XtraReports con la clase
adecuada en cada momento dependiendo del valor del campo de una fila que hay
en el grid.

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
09/12/2006 - 19:11 | Informe spam
Francisco,

Se puede, mediante reflexión. Ahí va un ejemplo (using System.Reflection;):
public object Crear(string nombreTipo)

{

Type tipo = Type.GetType(nombreTipo);

object obj = Activator.CreateInstance(tipo);

}

private void button1_Click(object sender, EventArgs e)

{

object obj = Crear("System.Int32"); // **** creamos un entero

MessageBox.Show(obj.GetType().Name.ToString());

}

Lo único es que hay que pasar el nombre de tipo del CLR, no el del lenguaje
específico (C#).

Slds - Octavio



"Francisco Matamoros" escribió en el mensaje
news:%23$
Hola, lo voy a poner con un ejemplo porque no me voy a explicar bien de
otro modo.
Tengo esto:

string pepe = "int",
o string pepe = "decimal"
y quiero crear una variable del tipo contenido en pepe
en tiempo de ejecución
sería a lo bestia tal que así:
pepe variable nueva = new pepe();
pero, claro de este modo es una burrada.
¿Se puede hacer esto?
Gracias
Es para que se abra un editor de informes de XtraReports con la clase
adecuada en cada momento dependiendo del valor del campo de una fila que
hay en el grid.



Respuesta Responder a este mensaje
#2 Francisco Matamoros
09/12/2006 - 21:26 | Informe spam
Gracias de nuevo Octavio, gran ayuda la tuya.

"Octavio Hernandez" escribió en el mensaje
news:
Francisco,

Se puede, mediante reflexión. Ahí va un ejemplo (using
System.Reflection;):
public object Crear(string nombreTipo)

{

Type tipo = Type.GetType(nombreTipo);

object obj = Activator.CreateInstance(tipo);

}

private void button1_Click(object sender, EventArgs e)

{

object obj = Crear("System.Int32"); // **** creamos un entero

MessageBox.Show(obj.GetType().Name.ToString());

}

Lo único es que hay que pasar el nombre de tipo del CLR, no el del
lenguaje específico (C#).

Slds - Octavio



"Francisco Matamoros" escribió en el
mensaje news:%23$
Hola, lo voy a poner con un ejemplo porque no me voy a explicar bien de
otro modo.
Tengo esto:

string pepe = "int",
o string pepe = "decimal"
y quiero crear una variable del tipo contenido en pepe
en tiempo de ejecución
sería a lo bestia tal que así:
pepe variable nueva = new pepe();
pero, claro de este modo es una burrada.
¿Se puede hacer esto?
Gracias
Es para que se abra un editor de informes de XtraReports con la clase
adecuada en cada momento dependiendo del valor del campo de una fila que
hay en el grid.








email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida