.NET habla brevemente sobre la reflexión (llamadas dinámicas)
Sigamos aprendiendo los conceptos básicos de C#. Este artículo habla principalmente sobre el paso crítico para que nosotros, los programadores de C#, avancemos hacia programadores avanzados de C#.
Algunos amigos dirán la verdad. ¿No es por eso que no puedo desarrollarme sin reflexión? Por supuesto que puede, pero definitivamente es diferente si lo usa o no. Cualquier arquitectura en capas abstracta compleja o patrón de diseño complejo se basa en estos fundamentos. Por ejemplo, si queremos llevar a cabo el desarrollo de componentes modulares, debemos eliminar estrictamente. Las diferencias entre módulos para desarrollar un sistema tan poderoso y flexible como las llamadas de interfaz dinámica deben utilizar la reflexión. Cualquier tecnología tiene su valor e importancia, siempre que la usemos en el lugar correcto, puede ejercer un poder asombroso tanto como sea posible. Reducir el código que escribimos puede hacer que nuestro código sea más claro y conciso.
A continuación aprenderemos el concepto de reflexión en C# y cómo usarlo. Los beneficios que nos puede brindar son los más importantes. La cuestión es si podemos elevar nuestro nivel técnico a un nivel superior
¿Qué es la reflexión?
Si queremos aprender rápidamente una tecnología, primero debemos entender qué hace esta tecnología. Tener una mirada a la situación general requiere una comprensión general para resaltar la capacidad de comprensión instintiva de todos en lugar de obligarlos a comprender mis ideas. Solo de esta manera podemos aprender más rápido y, sin darnos cuenta, podemos formar nuestro propio conjunto de pensamiento independiente. habilidades [Todos los derechos reservados por Wang Qingpei, por favor dé su firma para la reimpresión]
Explicación natural: la radiación es un fenómeno natural que se manifiesta como la reacción inversa de un objeto a otro. , que es una explicación literal. Echemos un vistazo a la reflexión en la programación de computadoras.
Explicación de la programación A través de las clases en el espacio de nombres System Reflection y el tipo de sistema, puede obtener información sobre el ensamblado cargado y los tipos definidos en. (como interfaces de clase y tipo de valor) También puede usar la reflexión para crear instancias de tipo en tiempo de ejecución y llamar y acceder a estas instancias. Esto es de la definición oficial de MSDN de Microsoft
A través de la comparación de los dos, yo. Creo que es útil para nosotros, los principiantes. La reflexión es usar algo para reflejar otra cosa. Cuando éramos jóvenes, nos gustaba usar un espejo para tomar fotografías en la pared. Este es un ejemplo muy típico de reflexión. Lo entiendo como un reflejo en una computadora. Utilizo un determinado medio para reflejar algo. Los objetos reflejan cosas que no puedo obtener directamente. La imagen es bastante vívida, al menos ya tenemos esa imagen en nuestra mente. El concepto de reflexión es obtener algo del otro extremo a través de algún tipo de dispositivo intermedio.
La reflexión en C# es la misma que la de. El concepto anterior y el principio son los mismos. Usemos ejemplos de código para explicar. Quiero usar este artículo Al estudiar el artículo, podrá comprender a fondo el concepto de reflexión
Ejemplo de reflexión de C#
p>?
Hay dos proyectos en mi solución: Reflexión La aplicación de consola TestDll es el proyecto que queremos reflejar. En este proyecto, definí una clase Math, que es el objeto que queremos. para reflejar.
Para facilitar la demostración, necesitamos establecer la ruta de salida generada del proyecto TestDll, que es el directorio de inicio de nuestro programa principal
Después de configurar esto, el archivo de salida de nuestro proyecto se reflejará en el directorio de inicio de nuestra aplicación, lo cual será más conveniente. Para permitir que los principiantes tomé un desvío y lo agregué con un poco de dificultad
.Presione F para compilar y el archivo dll TestDll se enviará al directorio Debug de Reflection. Cambiamos al método Main en Reflection para iniciar la operación de reflexión
ver código fuente
<. p>usando el sistemausando las colecciones del sistema genéricas
usando el texto del sistema;
usando la reflexión del sistema
usando el diagnóstico del sistema
reflexión del espacio de nombres
{
programa de clase <; /p>
{
static void Main(string[] args)
{
DLL de ensamblaje = LoadFile de ensamblaje (Entorno CurrentDirectory + \\TestDll dll )
Escriba math = dll GetType ( TestDll Math true)
Método MethodInfo = math GetMethod ( add )
int count = (int) método Invoke ( nuevo objeto nulo[] { })
Consola WriteLine(Método de invocación: + count ToString())
Consola ReadLine()
}
}
}
Definí un método estático add en la clase Math. Aquí podemos obtener el objeto Math a través de la reflexión y llamarlo dinámicamente
. El objeto Ensamblaje es como un espejo en nuestra vida diaria. Utilizo este espejo para mirar el archivo DLL externo y todos los datos de ese archivo se pueden reflejar en mí. Realizo una serie de adquisiciones a través del objeto administrado y los llamo específicos. Los lectores pueden buscar en línea. Los expertos pueden explicarlo con más detalle que yo. Solo estoy dando una introducción lishixinzhi/Article/program/net/201311/13536.