DA0012: Cantidad significativa de reflexión
Identificador de regla |
DA0012 |
Categoría |
Uso de .NET Framework |
Métodos de generación de perfiles |
Muestreo |
Mensaje |
Quizá está usando reflexión en exceso.Se trata de una operación que utiliza muchos recursos |
Tipo de regla |
Advertencia |
Motivo
Las llamadas a los métodos System.Reflection, como InvokeMember y GetMember, o a los métodos Type, como MemberInvoke, constituyen una proporción considerable de los datos de generación de perfiles.Puede sustituir estos métodos por un enlace en tiempo de compilación a los métodos de ensamblados dependientes.
Descripción de la regla
Reflexión es una facilidad flexible de .NET Framework que se puede usar para realizar un enlace en tiempo de ejecución de su aplicación a un ensamblado en tiempo de ejecución dependiente o para crear y dinámicamente ejecutar los nuevos tipos durante el tiempo de ejecución.Sin embargo, estas técnicas pueden disminuir el rendimiento si se usan con frecuencia o se llaman en bucles de pequeñas dimensiones.
Para obtener más información, vea la sección Reflection and Late Binding del Chapter 5 — Improving Managed Code Performance, en el volumen Improving .NET Application Performance and Scalability de la biblioteca Microsoft Patterns and Practices.
Cómo investigar una advertencia
Haga doble clic en el mensaje en la ventana Lista de errores para navegar a Vista Detalles de la función de los datos de generación de perfiles.Examine las funciones de llamada del método System.Reflection o System.Type para encontrar las secciones del programa que usan más frecuentemente las API de reflexión de .NET.Evite usar métodos que devuelven metadatos.Cuando el rendimiento de su aplicación es crítico, puede que necesite evitar el uso del enlace en tiempo de ejecución y la creación dinámica de tipos en tiempo de ejecución.