CA1506: Undvik överdriven klasskoppling
Property | Värde |
---|---|
Regel-ID | CA1506 |
Title | Undvik överdriven klasskoppling |
Kategori | Underhåll |
Korrigeringen är icke-bakåtkompatibel | Brott |
Standardtröskelvärde | Typer: 95 andra symboler: 40 |
Aktiverad som standard i .NET 9 | Nej |
Orsak
En typ, metod, fält, egenskap eller händelse är kopplad till många andra typer. Kompilatorgenererade typer undantas från det här måttet.
Regelbeskrivning
Den här regeln mäter klasskoppling genom att räkna antalet unika typreferenser som en typ, metod, fält, egenskap eller händelse innehåller. Standardtröskelvärdet för koppling är 95 för typer och 40 för andra symboltyper, och tröskelvärdena kan konfigureras.
Typer, metoder och andra symboler som har hög klasskoppling kan vara svåra att underhålla. Det är en bra idé att ha typer, metoder och andra symboler som uppvisar låg koppling och hög sammanhållning.
Så här åtgärdar du överträdelser
Om du vill åtgärda den här överträdelsen kan du försöka göra om typen eller metoden för att minska antalet typer som den är kopplad till.
När du ska ignorera varningar
Du kan ignorera den här varningen när typen eller metoden anses vara underhållsbar trots det stora antalet beroenden för andra typer.
Kommentar
Du kan se falska positiva varningar från den här regeln om alla följande gäller:
- Du använder Visual Studio 2022 version 17.5 eller senare med en äldre version av .NET SDK, dvs. .NET 6 eller tidigare.
- Du använder analysverktygen från .NET 6 SDK eller en äldre version av analyspaketen, till exempel Microsoft.CodeAnalysis.FxCopAnalyzers.
Falska positiva identifieringar beror på en icke-bakåtkompatibel ändring i C#-kompilatorn. Överväg att använda en nyare analysator som innehåller korrigeringen för falska positiva varningar. Uppgradera till Microsoft.CodeAnalysis.NetAnalyzers version 7.0.0-preview1.22464.1 eller senare eller använd analysverktygen från .NET 7 SDK.
Ignorera en varning
Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och aktiverar sedan regeln igen.
#pragma warning disable CA1506
// The code that's violating the rule is on this line.
#pragma warning restore CA1506
Om du vill inaktivera regeln för en fil, mapp eller ett projekt anger du dess allvarlighetsgrad till none
i konfigurationsfilen.
[*.{cs,vb}]
dotnet_diagnostic.CA1506.severity = none
Mer information finns i Så här utelämnar du kodanalysvarningar.
Konfigurera tröskelvärde
Du kan konfigurera tröskelvärdet där den här regeln utlöses och vilka typer av symboler som ska analyseras. De tillåtna symboltyperna är:
Assembly
Namespace
Type
Method
Field
Event
Property
Skapa en textfil med namnet CodeMetricsConfig.txt.
Lägg till det önskade tröskelvärdet i textfilen i följande format:
CA1506(Method): 60 CA1506(Type): 120
I det här exemplet konfigureras regeln att utlösas när en metod har fler än 60 referenser av unik typ eller om en typ har fler än 120 unika typreferenser. Med den här konfigurationsfilen fortsätter regeln att flagga fält, egenskaper och händelser vars klasskoppling är större än standardtröskelvärdet (40).
Markera konfigurationsfilens byggåtgärd som AdditionalFiles i projektfilen. Till exempel:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>