SoloCodigo

CLR: .Net / Mono / Boo / Otros CLR => VB .NET => Mensaje iniciado por: sergiotarrillo en Miércoles 29 de Diciembre de 2004, 17:44

Título: Callbyname
Publicado por: sergiotarrillo en Miércoles 29 de Diciembre de 2004, 17:44
hola foreros, encontre esta pregunta, en una comunidad, y no entiendo a que se refiere, si alguien que ha usado el VB6.0, me explica que es lo quiere el pata....

Citar
Lo ke pasa es ke necesito ejecutar algunos métodos de una clase en runtime es decir los nombres los tengo en una tabla y lo que kiero es llamar a dichos métodos a partir de dicho string. En VB 6 existía el CallByName el cual también en Net existe pero yo kiero utilizar las librerías propias de Net es por ello que deseo saber si existe algunas forma de hacer ello, estuve investigando y vi ke es algo con Reflection pero si alguien me puede dar una ayuda se lo agradecería.
Título: Re: Callbyname
Publicado por: Soultaker en Miércoles 29 de Diciembre de 2004, 22:19
Bueno lo que yo entiendo es que el pata lo que quiere hacer es que digamos me creo un formulario con infinidad de procedimientos, pero lo que me parece que quiere es que esos procedimientos osea los nombres esten en una tabla y al estar en la tabla serian de tipo string, por lo tanto el pata quiere jalar el nombre del procedimiento desde la tabla y que ese procedimiento se ejecute dependiendo del nombre que se haya elegido de la tabla. Bueno eso es lo que entendi.

Bueno esto seria algo parecido a lo que una vez hice una pregunta parecida en este foro (que por cierto hasta ahora no me responden :D )  Ejecutar codigo en variables (http://foros.solocodigo.com/index.php?showtopic=10632)  :hola:

Bueno eso me parece que es lo que quiere el patita. Por cierto si hayan la solucion tambien publiquenlo por aqui.

 :comp:
Título: Re: Callbyname
Publicado por: sergiotarrillo en Jueves 30 de Diciembre de 2004, 18:14
hola gentita, el pata ya encontro solucion, pero hasta ahora no entiendo que es lo que queria aca les mando las discusión para la chekeen:

CallByName (http://groups.msn.com/trujilloNET/general.msnw?action=get_message&ID_Message=49)
Título: Re: Callbyname
Publicado por: Soultaker en Viernes 31 de Diciembre de 2004, 03:43
Miren lo que yo entiendo es esto, espero no estar equivocado y si lo estoy corrijanme.

Código: Text
  1. ' Lo primero que hace es crear una clase (Class1)
  2. Dim i As Int32
  3.  
  4. ' Aqui declara MiClase del tipo de Class1
  5. Dim MiClase As Type = GetType(Class1) 'Obtienes el tipo
  6.  
  7. ' Luego aqui declara MyMethod del tipo de un Metodo
  8. Dim MyMethod As Reflection.MethodInfo ' Obtienes el metodo
  9.  
  10. ' Bueno el For ya saben para que es
  11. For i = 0 To Me.lstDestino.Items.Count - 1
  12.   ' Aqui a la variable MyMethod le esta almacenando el nombre del metodo
  13.   ' de acuerdo a la posición que se encuentre en el ListBox
  14.   MyMethod = MiClase.GetMethod(Me.lstDestino.Items(i))
  15.   ' Bueno y aqui esta ejecutando el metodo que se encuentra en la
  16.   ' variable MyMethod
  17.   MyMethod.Invoke(Nothing, Nothing) 'Llamas al metodo
  18. Next
  19.  

Lo de la tabla que queria jalar los nombres, lo que entiendo es que en la tabla ingresa todos los nombres de los métodos de la clase (Class1), luego esos nombres lo ingresa al ListBox y ahi de acuerdo al orden que este se va ejecutnado método por método.

Bueno eso es lo que entendí.

Saludos y Feliz Año. Bye  :hola:

 :comp:
Título: Re: Callbyname
Publicado por: sergiotarrillo en Viernes 31 de Diciembre de 2004, 12:41
ah, parece que voy entendiendo es como Poliformismo de metodos no..?
Título: Re: Callbyname
Publicado por: Soultaker en Viernes 31 de Diciembre de 2004, 21:21
Si pues es algo asi como el Poliformismo.

 :comp: