Ejemplo Reflection Invoke Technology
Actualización: noviembre 2007
Este ejemplo muestra cómo implementar el enlace en tiempo de ejecución en un ensamblado administrado con clases y métodos públicos. Desde la línea de comandos deberá seleccionar un ensamblado, un tipo, un método y los parámetros. El ejemplo intentará cargar el ensamblado, buscar el tipo y el método, e invocar el método con los parámetros pasados. Intentará incluso realizar las conversiones de tipos necesarias para las llamadas al método que toman parámetros que no son cadenas. Las clases de reflexión hacen que esta avanzada funcionalidad sea sorprendentemente simple. Con el ejemplo se incluye un proyecto de archivo DLL denominado Tester.dll. El proyecto de comprobador proporciona un tipo simple con algunos métodos para probarlos con el ejemplo de invocación.
Para obtener información sobre el uso de los ejemplos, consulte los temas siguientes:
Para generar el ejemplo desde el símbolo del sistema
Navegue hasta el subdirectorio específico de uno de los lenguajes para obtener el ejemplo.
Escriba msbuild InvokeCS.sln o msbuild InvokeVB.sln, dependiendo del lenguaje de programación elegido, en la línea de comandos.
Para generar el ejemplo mediante Visual Studio
Abra el Explorador de Windows y navegue hasta el subdirectorio específico de uno de los lenguajes para tener acceso al ejemplo.
Haga doble clic en el icono de InvokeCS.sln o InvokeVB.sln, dependiendo del lenguaje de programación elegido, para abrir el archivo en Visual Studio.
En el menú Generar, haga clic en Generar solución.
Nota: |
---|
Este ejemplo genera una aplicación de consola. Para poder ver el resultado, debe iniciarla desde la línea de comandos. Invoke.exe acepta parámetros de la línea de comandos que indican lo que desearía invocar. Si el ejemplo se ejecuta sin parámetros se mostrará su uso. Utilice la sintaxis siguiente para invocar un método de un tipo: |
Invoke.exe [Assembly] [Type] [Method] [Parameters...]
Para ejecutar el ejemplo
Navegue hasta el directorio que contiene los archivos Invoke.exe y Tester.dll.
Escriba Invoke.exe [Ensamblado] [Tipo] [Método] [Parámetros...] en la línea de comandos.
Comentarios
La herramienta msbuild genera dos archivos, Invoke.exe y Tester.dll.
En el ejemplo siguiente, se llama al método ShowMessage del tipo SomeType con tres parámetros:
Invoke.exe Tester.dll Microsoft.Samples.SomeType ShowMessage "This is an example of a message." "Question:" 4
Para obtener más información sobre la invocación de la reflexión, lea los comentarios de los archivos de código fuente.
Los elementos siguientes describen brevemente las clases y las tecnologías que se utilizan en este ejemplo.
Reflexión
AssemblySe emplea para cargar un ensamblado y para buscar un tipo en él.
Type Se emplea para obtener una matriz de instancias de MemberInfo, así como para hacer referencia a un tipo al crear una instancia, si fuera necesario.
MethodInfo Se emplea para detectar información sobre un método, incluidos los parámetros y el nombre del método. El ejemplo compara la información de este tipo con la información proporcionada en la línea de comandos. MethodInfo también se utiliza para invocar un método.
ParameterInfo Se emplea principalmente para buscar el tipo de parámetros del método, de modo que el ejemplo pueda convertir apropiadamente los argumentos de la línea de comandos.
Activator Se emplea para crear una instancia de un tipo, si el ejemplo considera que se necesita una llamada a un método de instancia.
Sistema