Compartir a través de


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.