FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Hola,
Aunque es un tema que daría para mucho, aquí te pongo un sencillísimo ejemplo basado en los que aparecen en el libro Visual C# de Francisco Charte: Código:
/* * Basado en ejemplos del libro Visual C# de Francisco, * Charte, concretamente, los del capítulo titulado * Recuperación de información de tipos en tiempo de * ejecución. * */ using System; using System.Reflection; namespace Consola.Pruebas { class Program { static void Main(string[] args) { /* Obtenemos una referencia a este ensamblado, pero, nótese que podríamos obtener la referencia de cualquier otro */ Assembly ensamblado = Assembly.GetExecutingAssembly(); /* Obtenemos el tipo de la clase "Prueba", a traves de su nombre completo, que, como puede verse, incluye el ensam- blado en donde se encuentra dicha clase Pruebas. */ Type ClasePrueba = ensamblado.GetType("Consola.Pruebas.Prueba"); // Si efectivamente tenemos el tipo de la clase... if (ClasePrueba != null) { /* Creamos una instancia de la clase, pero, nótese que lo obtendremos será la instancia de un "objeto", pero no po- dremos trabajar con él como si fuera directamente instan- ciado "como suele ser habitual". */ Object ObjetoPrueba = Activator.CreateInstance(ClasePrueba); // Esta sería una forma de invocar a un método del objeto (ObjetoPrueba as Prueba).Saludos(); // Esta sería otra, nótese que aquí "no conocemos" la clase Prueba MethodInfo MetodoSaludos = ClasePrueba.GetMethod("Saludos"); MetodoSaludos.Invoke(ObjetoPrueba, null); } Console.ReadLine(); } } // Clase para las pruebas anteriores class Prueba { public Prueba() { Console.WriteLine("Constructor de la clase Prueba"); } public void Saludos() { Console.WriteLine("Método Saludos de la clase Prueba"); } } } // class Program Última edición por dec fecha: 02-06-2006 a las 17:49:36. |
#2
|
|||
|
|||
Muchas gracias por la respuesta... me dio un rumbo en mi busqueda, pero ahora tengo otro problema... cuando en DELPHI, quiero hacer, lo que esta puesto a continuación...
Código:
/* Obtenemos el tipo de la clase "Prueba", a traves de su nombre completo, que, como puede verse, incluye el ensam- blado en donde se encuentra dicha clase Pruebas. */ Type ClasePrueba = ensamblado.GetType("Consola.Pruebas.Prueba"); ó Project.Unit1.TDatos ó Unit1.TDatos ó TDatos... y de ninguna de las maneras me funciona, de tal modo que no puedo obtener lo que busco... alguien ya lo ha hecho en DELPHI.NET??? |
#3
|
||||
|
||||
Hola,
Se me ocurre que te asegures de que el camino a la clase es el que tiene que ser. ¿Cómo? A bote pronto diría que utilizaras algo como esto: Código:
Assembly ensamblado = Assembly.GetExecutingAssembly(); |
#4
|
|||
|
|||
Assembly
Hola Dec.
quiero darte muchas gracias por tu atención... ahora, avocandome al tema, intente lo que dices, es mas, me base en todo el bloque de codigo que me diste que estaba en c#, y es muy bueno, pero tengo la flla justamente a la hora de llamar a la clase, es decir a la hora de hacer el GETTYPE, desde el assembly, ya que el assembly, carga tranquilamente, y es el correcto. jejejeje, mi problema parece de locos... GRACIAS... |
#5
|
|||
|
|||
Solucion Dada
Hola a todos, les cuento que leyendo un poco y probando otro poco, pude encontrar las solución... el problema se suscitaba en el nombre de la clase a la que estaba buscaba, y como dice en el bloque de codigo sugerido por DEC, se debe de poner el nombre de la clase unido al nombre de su ensamblado.
Yo no podia hacerlo, ya que en teoria mi clases no estaban manejando ensamblado, pero todo se soluciono poniendole el nombre de la unidad + punto + el nombre de la clase... y con eso todo corre de maravilla. Gracias... |
#6
|
||||
|
||||
Ya que hablamos de instancias, como puedo hacer para que mi aplicacion solo se pueda abrir una vez, es decir si ya se esta ejecutando que no se abra si no que muestre el que ya se esta ejecutando
__________________
Visita mi blog personal http://edwinmunguia.co.nr/ ! |
#7
|
|||
|
|||
Instancias
Recuerdo que alguna vez, hice algo así, y creo que te dará el rumbo...
Para eso esta el patron de Diseño "Singleton", si bien, no es un bloque de codigo que hace la tarea que necesitas, es un esquema de como debe de funcionar. Saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
crear un XML a partir de ClientDataSet | jmlifi | Internet | 2 | 08-01-2006 23:18:28 |
Crear un fichero .tlb a partir de un .pas | jfgazquez | Varios | 1 | 18-07-2005 16:44:50 |
Conocer PrinterIndex a partir del nombre | Novás | Varios | 1 | 16-07-2004 18:26:14 |
Crear un pdf a partir de otros pdf | barencibia | Varios | 0 | 13-06-2004 19:25:08 |
Crear un EXE a partir de un TXT o CPP | aleidania | Varios | 1 | 25-10-2003 18:36:45 |
|