Últimas noticias
Loading...
martes, 25 de septiembre de 2007

Reflection con VB.Net (I): Instanciar objetos

En algunas ocasiones, podemos querer crear objetos de forma dinámica, de forma que no necesitemos conocer el nombre de la clase a instanciar durante el desarrollo. Para ello, podemos utilizar las clases del namespace Reflection.

Vamos a realizar un ejemplo en el que queremos instanciar una clase de la que no conocemos el nombre, y que dicha clase tiene que ejecutar un método X que devolverá un resultado en una propiedad Y. Definimos un formulario web con 5 textBox y un botón:


  1. txtLibreria: dónde se encuentra la clase.
  2. txtClase: nombre de la clase a instanciar
  3. txtMetodo: nombre del método a ejecutar
  4. txtPropiedad: propiedad que contiene el resultado
  5. txtResultado: mostrará el resultado obtenido
  6. btnEjecutar: ejecuta el método
Para simplificar el ejemplo, consideramos las siguientes restricciones:
  • El método no tiene parámetros
  • La propiedad que contiene el resultado es de tipo String

En el evento onClick del botón, insertamos el siguiente código:


Dim
objectType As Type = Type.GetType(txtLibreria.Text + "." + txtClase.Text + ", " + txtLibreria.Text, True) Dim myObject As Object = Activator.CreateInstance(objectType) ' Crea la instancia del objeto Dim mi As Reflection.MethodInfo = myObject.GetType().GetMethod( txtMetodo.Text) mi.Invoke(myObject, Nothing) ' Invoca al método (sin parámetros)
Dim pi As Reflection.PropertyInfo = myObject.GetType.GetProperty( txtPropiedad)
Dim strResultado As String = pi.GetValue(myObject, Nothing) ' Recupera el valor de la propiedad
txtResultado.Text = strResultado
En siguientes entregas, veremos la forma de llamar a un método con parámetros, y de obtener toda la información de una clase.
Referencias:

2 comentarios:

Estudiante de Universidad dijo...

Hola, qué tal? Quería informarles que la barra del costado derecho del texto tapa una parte del mismo y no deja leer de manera cómoda. Gracias.

Estudiante de Universidad dijo...

Hola, qué tal? Quería informarles que la barra del costado derecho del texto tapa una parte del mismo y no deja leer de manera cómoda. Gracias.

Quick Message
Press Esc to close
Copyright © 2013 Apaga y vámonos All Right Reserved