CA2001 : Évitez d'appeler des méthodes susceptibles de poser des problèmes
Élément | Valeur |
---|---|
ID de la règle | CA2001 |
Category | Microsoft.Reliability |
Modification avec rupture | Sans rupture |
Cause
Un membre appelle une méthode potentiellement dangereuse ou problématique.
Description de la règle
Évitez l’appel de méthodes inutiles et potentiellement dangereuses. Une violation de cette règle se produit quand un membre appelle l’une des méthodes suivantes :
Méthode | Description |
---|---|
System.GC.Collect | Un appel de GC.Collect peut affecter considérablement les performances de l’application, ce qui est rarement nécessaire. Pour plus d’informations, consultez l’entrée de blog Rico Mariani’s Performance Tidbits sur MSDN. |
System.Threading.Thread.Resume System.Threading.Thread.Suspend |
Thread.Suspend et Thread.Resume ont été dépréciés en raison de leur comportement imprévisible. Utilisez d’autres classes dans l’espace de noms System.Threading, comme Monitor, Mutex et Semaphore, pour synchroniser les threads ou protéger les ressources. |
System.Runtime.InteropServices.SafeHandle.DangerousGetHandle | La méthode DangerousGetHandle présente un risque pour la sécurité, car elle peut retourner un descripteur qui n’est pas valide. Pour plus d’informations sur la manière d’utiliser la méthode DangerousGetHandle en toute sécurité, consultez les méthodes DangerousAddRef et DangerousRelease. |
System.Reflection.Assembly.LoadFrom System.Reflection.Assembly.LoadFile System.Reflection.Assembly.LoadWithPartialName |
Ces méthodes peuvent charger des assemblys à partir d’emplacements inattendus. Par exemple, consultez les billets de blog .NET CLR Notes de Suzanne Cook LoadFile vs. LoadFrom et Choosing a Binding Context pour plus d’informations sur les méthodes qui chargent des assemblys. |
CoSetProxyBlanket CoInitializeSecurity |
À partir du moment où le code utilisateur commence à s’exécuter dans un processus managé, il est trop tard pour appeler CoSetProxyBlanket de manière fiable. Le Common Language Runtime (CLR) effectue des actions d’initialisation qui peuvent empêcher les méthodes P/Invoke des utilisateurs de réussir.Si vous devez appeler CoSetProxyBlanket pour une application managée, nous vous recommandons de démarrer le processus à l’aide d’un exécutable de code natif (C++), d’appeler CoSetProxyBlanket dans le code natif, puis de démarrer votre application de code managé en cours. (Veillez à spécifier un numéro de version du runtime.) |
Comment corriger les violations
Pour corriger une violation de cette règle, supprimez ou remplacez l’appel à la méthode dangereuse ou problématique.
Quand supprimer les avertissements
Supprimez les messages de cette règle uniquement si aucune alternative à la méthode problématique n’est disponible.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour