DA0012 : Quantité importante de réflexion
ID de la règle |
DA0012 |
Catégorie |
Utilisation du .NET Framework |
Méthodes de profilage |
Échantillonnage |
Message |
Vous utilisez trop de réflexion.C'est une opération coûteuse. |
Type de règle |
Avertissement |
Cause
Les appels aux méthodes System.Reflection telles que InvokeMember et GetMember ou aux méthodes Type telles que MemberInvoke représentent une proportion significative des données de profilage.Lorsque cela est possible, envisagez de remplacer ces méthodes par une liaison anticipée aux méthodes d'assemblys dépendants.
Description de la règle
La réflexion est une fonctionnalité flexible du .NET Framework qui peut être utilisée pour exécuter la liaison tardive de votre application à un Assembly de runtime dépendant ou pour créer et dynamiquement exécuter de nouveaux types pendant le temps d'exécution.Toutefois, ces techniques peuvent diminuer les performances si elles sont fréquemment utilisées ou appelées dans les boucles serrées.
Pour plus d'informations, consultez la sectionReflection and Late Binding de Chapter 5 — Improving Managed Code Performance dans le volume Improving .NET Application Performance and Scalability de la bibliothèque Microsoft Patterns and Practices sur MSDN.
Comment examiner un avertissement
Double-cliquez sur le message dans la fenêtre Liste d'erreurs pour naviguer jusqu'à l'Vue Informations relatives à la fonction des données de profilage.Examinez les fonctions d'appel de la méthode System.Type ou System.Reflection pour rechercher les sections du programme qui utilisent le plus les API .NET Reflection.Évitez d'utiliser des méthodes qui retournent des métadonnées.Lorsque la performance de votre application est critique, évitez d'utiliser la liaison tardive et de créer dynamiquement des types au moment de l'exécution.