CA1506 : Éviter les couplages de classe excessifs
Propriété | Value |
---|---|
Identificateur de la règle | CA1506 |
Titre | Éviter les couplages de classe excessifs |
Catégorie | Maintenabilité |
Le correctif est cassant ou non cassant | Rupture |
Seuil par défaut | Types : 95 Autres symboles : 40 |
Activée par défaut dans .NET 9 | Non |
Cause
Un type, une méthode, un champ, une propriété ou un événement est couplé à de nombreux autres types. Les types générés par le compilateur sont exclus de cette métrique.
Description de la règle
Cette règle mesure le couplage de classes en comptant le nombre de références de type unique contenues dans un type, une méthode, un champ, une propriété ou un événement. Le seuil de couplage par défaut est 95 pour les types et 40 pour les autres types de symboles et les seuils sont configurables.
Les types, méthodes et autres symboles qui ont un degré élevé de couplage de classes peuvent être difficiles à maintenir. Il est recommandé d’avoir des types, des méthodes et d’autres symboles qui présentent un faible couplage et une forte cohésion.
Comment corriger les violations
Pour résoudre cette violation, essayez de reconcevoir le type ou la méthode afin de réduire le nombre de types auxquels elle est couplée.
Quand supprimer les avertissements
Vous pouvez supprimer cet avertissement lorsque le type ou la méthode est considéré comme pouvant être géré malgré son grand nombre de dépendances envers d’autres types.
Remarque
Vous pouvez voir des avertissements de faux positifs de cette règle si tous les éléments suivants s’appliquent :
- Vous utilisez Visual Studio 2022 version 17.5 ou ultérieure avec une version antérieure du Kit de développement logiciel (SDK) .NET, c’est-à-dire .NET 6 ou version antérieure.
- Vous utilisez les analyseurs du Kit de développement logiciel (SDK) .NET 6 ou d’une version antérieure des packages d’analyseurs, comme Microsoft.CodeAnalysis.FxCopAnalyzers.
Les faux positifs sont dus à un changement cassant dans le compilateur C#. Envisagez d’utiliser un analyseur plus récent qui contient le correctif pour les avertissements faux positifs. Effectuez une mise à niveau vers Microsoft.CodeAnalysis.NetAnalyzers version 7.0.0-préversion1.22464.1 ou ultérieure ou utilisez les analyseurs du Kit de développement logiciel (SDK) .NET 7.
Supprimer un avertissement
Si vous voulez supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver et réactiver la règle.
#pragma warning disable CA1506
// The code that's violating the rule is on this line.
#pragma warning restore CA1506
Pour désactiver la règle sur un fichier, un dossier ou un projet, définissez sa gravité sur none
dans le fichier de configuration.
[*.{cs,vb}]
dotnet_diagnostic.CA1506.severity = none
Pour plus d’informations, consultez Comment supprimer les avertissements de l’analyse de code.
Configurer le seuil
Vous pouvez configurer le seuil auquel cette règle se déclenche et les types de symboles à analyser. Les types de symboles autorisés sont les suivants :
Assembly
Namespace
Type
Method
Field
Event
Property
Créez un fichier texte nommé CodeMetricsConfig.txt.
Ajoutez le seuil souhaité au fichier texte au format suivant :
CA1506(Method): 60 CA1506(Type): 120
Dans cet exemple, la règle est configurée pour être déclenchée lorsqu’une méthode a plus de 60 références de type unique ou qu’un type a plus de 120 références de type unique. Avec ce fichier config, la règle continue à marquer les champs, les propriétés et les événements dont le couplage de classes est supérieur au seuil par défaut (40).
Dans le fichier projet, marquez l’action de génération du fichier config comme AdditionalFiles. Par exemple :
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>