Programacion con clases

23/02/2006 - 00:20 por Ernesto Díaz | Informe spam
Que tal buen dia

Tengo una idea pero no he encontrado la manera de llevarla a cabo. Yo
quisiera tener un repositorio de muchas clases, y dentro de una tabla en una
base de datos tener una descripcion de la clase y su nombre y asi a traves
de una consulta traer el nombre de la clase que debo de ejecutar y
ejecutarla en el programa que yo deseo.

Es esto posible o estoy soñando.

Saludos y gracias

Ernesto

Preguntas similare

Leer las respuestas

#6 Ernesto Díaz
24/02/2006 - 18:49 | Informe spam
Aqui esta una posible solucion, para todos los interesados, con este codigo
logre instanciar en tiempo de ejecucion a partir de una cadenita

Dim ensamblado As Assembly
Dim t As Type
ensamblado = Assembly.LoadFrom("miensamblado.dll")
t = ensamblado.GetType("miensamblado.miclase")
Dim a As Object = Activator.CreateInstance(t)

Saludos

Ernesto Díaz
México

"JOSE DAVID GALVIZ M" escribió en el mensaje
news:
Me pasó lo mismo Eduardo :(



JOSE DAVID GALVIZ MUÑOZ
MCAD - DCE 5 Estrella


"Ernesto Díaz" escribió en el mensaje
news:
Antes que nada gracias por tu ayuda, pero desafortunadamente sigo teniendo
problemas, mira he creado una class library, y en mi proyecto agrego esa
class library como referencia, pero ya cuando utilizo el GetType me dice
que
el tipo no esta definido, he hecho los ejemplos que encontre en la ayuda
del
.Net pero todos tienen una clase que esta creada dentro de la aplicación y
asi funciona correctamente lo que tu me indicas, pero cuando trato de
ponerle una clase que esta dentro de mi class library alli es cuando me
dice
que el tipo no esta definido, que se me puede estar escapando.

Saludos y gracias de vuelta

Ernesto

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:

Que tal, oye no se si pudieras proporcionarme algun ejemplo de como
trabajar con el activator, Gracias



Dim t As Type = Type.GetType("MiNamespace.MiClase")
Dim obj As Object

obj = Activator.CreateInstance(t)

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C






Respuesta Responder a este mensaje
#7 JOSE DAVID GALVIZ M
24/02/2006 - 23:58 | Informe spam
Gracias Ernesto, enseguida lo pruebo




JOSE DAVID GALVIZ MUÑOZ
MCAD - DCE 5 Estrella


"Ernesto Díaz" escribió en el mensaje
news:ewh9$
Aqui esta una posible solucion, para todos los interesados, con este codigo
logre instanciar en tiempo de ejecucion a partir de una cadenita

Dim ensamblado As Assembly
Dim t As Type
ensamblado = Assembly.LoadFrom("miensamblado.dll")
t = ensamblado.GetType("miensamblado.miclase")
Dim a As Object = Activator.CreateInstance(t)

Saludos

Ernesto Díaz
México

"JOSE DAVID GALVIZ M" escribió en el mensaje
news:
Me pasó lo mismo Eduardo :(



JOSE DAVID GALVIZ MUÑOZ
MCAD - DCE 5 Estrella


"Ernesto Díaz" escribió en el mensaje
news:
Antes que nada gracias por tu ayuda, pero desafortunadamente sigo teniendo
problemas, mira he creado una class library, y en mi proyecto agrego esa
class library como referencia, pero ya cuando utilizo el GetType me dice
que
el tipo no esta definido, he hecho los ejemplos que encontre en la ayuda
del
.Net pero todos tienen una clase que esta creada dentro de la aplicación y
asi funciona correctamente lo que tu me indicas, pero cuando trato de
ponerle una clase que esta dentro de mi class library alli es cuando me
dice
que el tipo no esta definido, que se me puede estar escapando.

Saludos y gracias de vuelta

Ernesto

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:

Que tal, oye no se si pudieras proporcionarme algun ejemplo de como
trabajar con el activator, Gracias



Dim t As Type = Type.GetType("MiNamespace.MiClase")
Dim obj As Object

obj = Activator.CreateInstance(t)

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C






Respuesta Responder a este mensaje
#8 JOSE DAVID GALVIZ M
25/02/2006 - 00:35 | Informe spam
Funcionó, gracias.




JOSE DAVID GALVIZ MUÑOZ
MCAD - DCE 5 Estrella


"Ernesto Díaz" escribió en el mensaje
news:ewh9$
Aqui esta una posible solucion, para todos los interesados, con este codigo
logre instanciar en tiempo de ejecucion a partir de una cadenita

Dim ensamblado As Assembly
Dim t As Type
ensamblado = Assembly.LoadFrom("miensamblado.dll")
t = ensamblado.GetType("miensamblado.miclase")
Dim a As Object = Activator.CreateInstance(t)

Saludos

Ernesto Díaz
México

"JOSE DAVID GALVIZ M" escribió en el mensaje
news:
Me pasó lo mismo Eduardo :(



JOSE DAVID GALVIZ MUÑOZ
MCAD - DCE 5 Estrella


"Ernesto Díaz" escribió en el mensaje
news:
Antes que nada gracias por tu ayuda, pero desafortunadamente sigo teniendo
problemas, mira he creado una class library, y en mi proyecto agrego esa
class library como referencia, pero ya cuando utilizo el GetType me dice
que
el tipo no esta definido, he hecho los ejemplos que encontre en la ayuda
del
.Net pero todos tienen una clase que esta creada dentro de la aplicación y
asi funciona correctamente lo que tu me indicas, pero cuando trato de
ponerle una clase que esta dentro de mi class library alli es cuando me
dice
que el tipo no esta definido, que se me puede estar escapando.

Saludos y gracias de vuelta

Ernesto

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:

Que tal, oye no se si pudieras proporcionarme algun ejemplo de como
trabajar con el activator, Gracias



Dim t As Type = Type.GetType("MiNamespace.MiClase")
Dim obj As Object

obj = Activator.CreateInstance(t)

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C






Respuesta Responder a este mensaje
#9 Eduardo A. Morcillo [MS MVP VB]
25/02/2006 - 06:35 | Informe spam
Si, el asunto es que si el ensamblado no esta cargado Type.GetType no
encuentra el tipo. Hay varias soluciones, una es como muestra Ernesto cargar
explicitamente el ensamblado y usar Assembly.GetType para obtener el tipo.
Una variante de esto mismo es usar el evento TypeResolve de AppDomain. Otra
forma es especificar el ensamblado junto con el tipo:

Type t = Type.GetType("MiNamespace.Miclase, MiEnsamblado");


Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C
Respuesta Responder a este mensaje
#10 Ernesto Díaz
25/02/2006 - 15:29 | Informe spam
Gracias a todos por su ayuda y su paciencia.

Saludos
Ernesto Díaz
México

"Los grandes cambios son la suma de pequeños cambios"

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:%
Si, el asunto es que si el ensamblado no esta cargado Type.GetType no
encuentra el tipo. Hay varias soluciones, una es como muestra Ernesto
cargar explicitamente el ensamblado y usar Assembly.GetType para obtener
el tipo. Una variante de esto mismo es usar el evento TypeResolve de
AppDomain. Otra forma es especificar el ensamblado junto con el tipo:

Type t = Type.GetType("MiNamespace.Miclase, MiEnsamblado");


Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
http://mvp.support.microsoft.com/pr...4EF5A4191C

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