Obtener una Instancia a una DLL creada en vb.NET

30/01/2006 - 21:08 por Bio | Informe spam
Hola.

Tengo el siguiente código:

oAss = Reflection.Assembly.LoadFrom(Ficheros(i))
oObj = oAss.CreateInstance("cCovers01.cCovers")

Al parecer funciona, pero no puedo acceder ni a los procedimientos, ni
a los métodos, ni a los eventos de la clase que se supone acabo de
crear... O quizá es que no se hacerlo. Por ejemplo, sería algo como:

oObj.Busqueda = "prueba"
oObj.Buscar()

¿? Algo me dice que no. Agradecería ayuda en el tema.
Gracias.
Juan Carlos.

Preguntas similare

Leer las respuestas

#6 Bio
01/02/2006 - 21:10 | Informe spam
Hola de nuevo Jesús...

Veamos... recuerdo que nada más responderme, probé el ejemplo, y
funciono de maravilla. Entonces reorganicé mi código, y al volver a
ejecutar, ahora la instrucción oass.createinstance("cAnimal") me
devuelve nothing... no se en que falla!

Te pego las partes del código...

Tengo una Interfaz.dll que contiene lo siguiente:
-
Public Interface IBuscador
Property Busqueda() As String
ReadOnly Property Resultado() As String
ReadOnly Property Nombre() As String
ReadOnly Property URLBase() As String
Sub Buscar(Optional ByVal Busqueda As String = "")
Event Finalizado As EventHandler
End Interface
-

Esta dll la tiene referenciada otra dll, cAnimal01.dll que corresponde
al ejemplo de los animales, y contiene lo siguiente:

-
Imports Interfaz
Imports System
Imports System.IO

Public Class cAnimal
'info del site
'
Private Const mvarNombre As String = "Animales1"
Private Const mvarURLBase As String = "http://www.animales1.com"
Private Const mvarURLBusqueda As String "http://www.animales1.com/buscar.php"
'

Private mvarBusqueda As String
Private mvarResultado As String

Public Property Busqueda() As String
Get
Busqueda = mvarBusqueda
End Get
Set(ByVal Value As String)
mvarBusqueda = Value
End Set
End Property

Public ReadOnly Property Resultado() As String
Get
Resultado = mvarResultado
End Get
End Property

Public ReadOnly Property Nombre() As String
Get
Nombre = mvarNombre
End Get
End Property

Public ReadOnly Property URLBase() As String
Get
URLBase = mvarURLBase
End Get
End Property

Public Event Finalizado(ByVal sender As Object, ByVal e As
System.EventArgs)

Public Sub Buscar(Optional ByVal Busqueda As String = "")
'codigo de la busqueda
End Sub
End Class
-

Y mi programa principal, que tiene una clase que contiene lo siguiente:
-
Imports Interfaz
Imports System.IO

Public Class cBuscadores
Public Enum bTipo
cAnimal
cPlanta
End Enum

Private Shared Animal As New ArrayList
Private Shared Planta As New ArrayList

Public Event Finalizado(ByVal sender As Object, ByVal e As
System.EventArgs)

Private Sub sFinalizado(ByVal sender As Object, ByVal e As
System.EventArgs)
RaiseEvent Finalizado(sender, e)
End Sub

Public Sub New()
Animal.Clear()
Planta.Clear()
End Sub

Public Function CargarBuscador(ByVal Tipo As bTipo, ByVal Fichero As
String) As String
Dim oAss As Reflection.Assembly
Dim oObj As IBuscador

oAss = Reflection.Assembly.LoadFrom(Fichero)
oObj = oAss.CreateInstance(Tipo.ToString)
AddHandler oObj.Finalizado, AddressOf sFinalizado

Select Case Tipo
Case bTipo.cAnimal : Animal.Add(oObj)
Case bTipo.cPlanta : Planta.Add(oObj)
End Select

CargarBuscador = oObj.Nombre
End Function
End Class
-

El formulario principal se recorre un directorio, y le pasa como
parametros el fichero y su tipo a la funcion CargarBuscador, pero la
instruccion

oObj = oAss.CreateInstance(Tipo.ToString)

me devuelve Nothing.

Recuerdo perfectamente que la primera prueba que hice despues de tu
último post funciono de maravilla, no se que pasa ahora.

Agradecería de nuevo tu ayuda.
Muchísimas gracias
Juan Carlos.
Respuesta Responder a este mensaje
#7 Bio
01/02/2006 - 22:14 | Informe spam
=êݝɚv'
Respuesta Responder a este mensaje
#8 Bio
01/02/2006 - 22:20 | Informe spam
ah!, perdona! es que accedo desde gooogle groups y no se ven tus
comentarios, salen con el mismo tipo de letra y estaban un poco
"ocultos" entre el código.

Voy a probar y te digo.

Gracias.
Respuesta Responder a este mensaje
#9 Bio
01/02/2006 - 22:35 | Informe spam
Gracias Jesús!!! Efectivamente faltaba el Implements... como no pude
darme cuenta, si faltaban todas las Implements
Interfaz.IBuscador.etc...

Sobre tu pregunta:
¿Donde está el código para cargar todos los buscadores de animales y
plantas? No veo por ninguna parte código que acceda a estos ArrayList

Se rellenan en la funcion CargarBuscador
Select Case Tipo
Case bTipo.cAnimal : Animal.Add(oObj)
Case bTipo.cPlanta : Planta.Add(oObj)
End Select

Muchísimas gracias de nuevo :) Espero no molestarte más.
Un Saludo
Juan Carlos.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida