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 peut-être la réflexion de manière excessive. Il s'agit d'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.