Ejecución de procedimientos mediante reflection

20/12/2004 - 13:34 por Santiago Barro | Informe spam
Hola a todos,
necesito ejecutar un procedimiento desde una libreria cargada en tiempo de
ejecución.

He conseguido que cargue la libreria y que muestra información sobre sus
procedimientos, pero no que los ejecute:

Dim r As System.Reflection.Assembly
r = Reflection.Assembly.LoadFrom(Application.StartupPath &
"\libreria.dll")
Dim metodo As MethodInfo = r.GetType.GetMethod("Prueba")
metodo.Invoke(Nothing, Nothing)

El error que me da es: "Referencia a objeto no establecida como instancia de
un objeto."

Muchas gracias y un saludo

Preguntas similare

Leer las respuestas

#1 SqlRanger
20/12/2004 - 14:24 | Informe spam
Hay que obtener el tipo de una determinada clase implementada en el
ensamblado y crear un objeto de la clase antes de invocar a un método de
instancia:

Dim r As System.Reflection.Assembly
r = Reflection.Assembly.LoadFrom(Application.StartupPath &
"\libreria.dll")

Dim Tipo As Type = r.GetType("EspacioDeNombres.Clase")
Dim metodo As MethodInfo = Tipo.GetMethod("NombreMétodo")
Dim Obj As Object = Activator.CreateInstance( Tipo )
metodo.Invoke(Obj, Nothing)


Saludos:

Jesús López
MVP


"Santiago Barro" escribió en el mensaje
news:
Hola a todos,
necesito ejecutar un procedimiento desde una libreria cargada en tiempo de
ejecución.

He conseguido que cargue la libreria y que muestra información sobre sus
procedimientos, pero no que los ejecute:

Dim r As System.Reflection.Assembly
r = Reflection.Assembly.LoadFrom(Application.StartupPath &
"\libreria.dll")
Dim metodo As MethodInfo = r.GetType.GetMethod("Prueba")
metodo.Invoke(Nothing, Nothing)

El error que me da es: "Referencia a objeto no establecida como instancia


de
un objeto."

Muchas gracias y un saludo


Respuesta Responder a este mensaje
#2 Santiago Barro
21/12/2004 - 07:49 | Informe spam
Perfecto. Muchas gracias SqlRanger. :-))
Un saludo

"SqlRanger" escribió en el mensaje
news:
Hay que obtener el tipo de una determinada clase implementada en el
ensamblado y crear un objeto de la clase antes de invocar a un método de
instancia:

Dim r As System.Reflection.Assembly
r = Reflection.Assembly.LoadFrom(Application.StartupPath &
"\libreria.dll")

Dim Tipo As Type = r.GetType("EspacioDeNombres.Clase")
Dim metodo As MethodInfo = Tipo.GetMethod("NombreMétodo")
Dim Obj As Object = Activator.CreateInstance( Tipo )
metodo.Invoke(Obj, Nothing)


Saludos:

Jesús López
MVP


"Santiago Barro" escribió en el mensaje
news:
Hola a todos,
necesito ejecutar un procedimiento desde una libreria cargada en tiempo
de
ejecución.

He conseguido que cargue la libreria y que muestra información sobre sus
procedimientos, pero no que los ejecute:

Dim r As System.Reflection.Assembly
r = Reflection.Assembly.LoadFrom(Application.StartupPath &
"\libreria.dll")
Dim metodo As MethodInfo = r.GetType.GetMethod("Prueba")
metodo.Invoke(Nothing, Nothing)

El error que me da es: "Referencia a objeto no establecida como instancia


de
un objeto."

Muchas gracias y un saludo






Respuesta Responder a este mensaje
#3 Asier
23/12/2004 - 08:52 | Informe spam
Hola,

¿ya para Establecer el valor de una propiedad publica o leer su valor?
Mil gracias,

Asier

"Santiago Barro" escribió en el mensaje
news:#
Perfecto. Muchas gracias SqlRanger. :-))
Un saludo

"SqlRanger" escribió en el mensaje
news:
> Hay que obtener el tipo de una determinada clase implementada en el
> ensamblado y crear un objeto de la clase antes de invocar a un método de
> instancia:
>
> Dim r As System.Reflection.Assembly
> r = Reflection.Assembly.LoadFrom(Application.StartupPath &
> "\libreria.dll")
>
> Dim Tipo As Type = r.GetType("EspacioDeNombres.Clase")
> Dim metodo As MethodInfo = Tipo.GetMethod("NombreMétodo")
> Dim Obj As Object = Activator.CreateInstance( Tipo )
> metodo.Invoke(Obj, Nothing)
>
>
> Saludos:
>
> Jesús López
> MVP
>
>
> "Santiago Barro" escribió en el mensaje
> news:
>> Hola a todos,
>> necesito ejecutar un procedimiento desde una libreria cargada en tiempo
>> de
>> ejecución.
>>
>> He conseguido que cargue la libreria y que muestra información sobre


sus
>> procedimientos, pero no que los ejecute:
>>
>> Dim r As System.Reflection.Assembly
>> r = Reflection.Assembly.LoadFrom(Application.StartupPath &
>> "\libreria.dll")
>> Dim metodo As MethodInfo = r.GetType.GetMethod("Prueba")
>> metodo.Invoke(Nothing, Nothing)
>>
>> El error que me da es: "Referencia a objeto no establecida como


instancia
> de
>> un objeto."
>>
>> Muchas gracias y un saludo
>>
>>
>
>



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