C sharp - Ayuda con Assembly y createInstance

 
Vista:

Ayuda con Assembly y createInstance

Publicado por Javi (14 intervenciones) el 25/09/2004 12:39:52
Hola, kiero que mi aplicación pueda cargar clases dinámicamete. Estas clases derivarán de una clase que tengo en mi aplicación (clase TAD).

Para probar todo esto lo que he hecho es hacer una dll (Prueba.dll) con una clase de este tipo (deriva de TAD). Y hago lo siguiente:

// Cargo la dll
Assembly miDLL = Assembly.LoadFrom("Prueba.dll");

Una vez tengo localizado el tipo del que quiero instanciar un objeto TAD en la variable "t" hago lo siguiente (t.FullName será la clase que deriva de TAD):

TAD miTAD = (TAD) miDLL.CreateInstance(t.FullName,false,BindingFlags.Default,null,args,null,null);

Aquí es donde tengo el problema, me salta la excepción de InvalidCastException y me dice que no estoy haciendo un cast correcto. No lo entiendo porque la clase TAD de la dll es la misma que la que tengo en mi aplicación.

No sé si lo entenderá alguien pero GRACIAS de todas formas.

Un saludo, Javi.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con Assembly y createInstance

Publicado por Javi (14 intervenciones) el 29/09/2004 12:39:55
Sí en un namespace llamado Proyecto2004 pero también he probado con Proyecto2004.TAD y sigue sin funcionar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:Ayuda con Assembly y createInstance

Publicado por Yamil Bracho (1162 intervenciones) el 29/09/2004 14:56:46
Entonces debes anteponerle el namespace al nombre de la clase...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Assembly y createInstance

Publicado por Javi (14 intervenciones) el 29/09/2004 15:17:30
No quiero ser pesado pero eso ya lo probé y me salta el mismo error.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Assembly y createInstance

Publicado por Edgar (278 intervenciones) el 29/09/2004 16:20:08
Hola

Me parece que el problema es que tienes definida 2 veces la clase TAD, ya que dices que la clase TAD del dll es la misma que la que tienes en tu aplicación... si esto es cierto, alli está tu problema, ya que aunque ambas tengan exactamente los mismos métodos y propiedades, estas son tratadas como 2 clases distintas, y por eso te da el error de casting

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Assembly y createInstance

Publicado por Javi (14 intervenciones) el 29/09/2004 16:53:12
Claro, pero, ¿puedo hacer una dll con una clase que derive de TAD y sin incluir en la dll la clase TAD?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con Assembly y createInstance

Publicado por Edgar (278 intervenciones) el 29/09/2004 22:53:24
Hola

La manera de hacerlo es crear un dll que contenga la clase TAD, luego creas tu otro dll en tu proyecto de prueba y desde alli haces una referencia al dll que contiene la clase TAD, luego heredas la clase

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar