CA1506: Kerülje a túlzott osztálykapcsolódást
Tulajdonság | Érték |
---|---|
Szabályazonosító | CA1506 |
Cím | Kerülje a túlzott osztálykapcsolódást |
Kategória | Fenntarthatóság |
A javítás kompatibilitástörő vagy nem törik | Törés |
Alapértelmezett küszöbérték | Típusok: 95 Egyéb szimbólumok: 40 |
Alapértelmezés szerint engedélyezve a .NET 8-ban | Nem |
Ok
Egy típus, metódus, mező, tulajdonság vagy esemény számos más típussal párosul. A fordító által létrehozott típusok ki vannak zárva ebből a metrikaból.
Szabály leírása
Ez a szabály az osztálykapcsolódást az adott típus, metódus, mező, tulajdonság vagy esemény által tartalmazott egyedi típushivatkozások számának megszámolásával méri. Az alapértelmezett összekapcsolási küszöbérték típusoknál 95, más szimbólumtípusoknál 40, a küszöbértékek pedig konfigurálhatók.
A nagy fokú osztálykapcsolódású típusokat, módszereket és egyéb szimbólumokat nehéz fenntartani. Jó gyakorlat olyan típusokkal, módszerekkel és egyéb szimbólumokkal rendelkezni, amelyek alacsony összekapcsolást és magas kohéziót mutatnak.
Szabálysértések kijavítása
A szabálysértés kijavításához próbálja meg újratervezni a típust vagy metódust, hogy csökkentse azoknak a típusoknak a számát, amelyekhez kapcsolódik.
Mikor kell letiltani a figyelmeztetéseket?
Ezt a figyelmeztetést akkor tilthatja le, ha a típus vagy a metódus karbantarthatónak tekinthető annak ellenére, hogy sok függősége van más típusokhoz.
Megjegyzés:
Ha az alábbiak mindegyike érvényes, a szabály tévesen pozitív figyelmeztetéseket jeleníthet meg:
- A Visual Studio 2022 17.5-ös vagy újabb verzióját használja a .NET SDK egy régebbi verziójával, vagyis a .NET 6-os vagy korábbi verziójával.
- A .NET 6 SDK-ból származó elemzőket vagy az elemzőcsomagok egy régebbi verzióját használja, például a Microsoft.CodeAnalysis.FxCopAnalyzerst.
A hamis pozitív értékek a C#-fordító kompatibilitástörő változásának köszönhetők. Fontolja meg egy újabb elemző használatát, amely tartalmazza a hamis pozitív figyelmeztetések javítását. Frissítsen a Microsoft.CodeAnalysis.NetAnalyzers 7.0.0-preview1.22464.1-es vagy újabb verziójára, vagy használja a .NET 7 SDK elemzőit.
Figyelmeztetés mellőzése
Ha csak egyetlen szabálysértést szeretne letiltani, adjon hozzá előfeldolgozási irányelveket a forrásfájlhoz a szabály letiltásához és újbóli engedélyezéséhez.
#pragma warning disable CA1506
// The code that's violating the rule is on this line.
#pragma warning restore CA1506
Ha le szeretné tiltani egy fájl, mappa vagy projekt szabályát, állítsa annak súlyosságát none
a konfigurációs fájlban.
[*.{cs,vb}]
dotnet_diagnostic.CA1506.severity = none
További információ: Kódelemzési figyelmeztetések letiltása.
Küszöbérték konfigurálása
Konfigurálhatja azt a küszöbértéket, amelynél ez a szabály aktiválódik, és az elemezendő szimbólumok típusait. A megengedett szimbólumtípusok a következők:
Assembly
Namespace
Type
Method
Field
Event
Property
Hozzon létre egy CodeMetricsConfig.txt nevű szövegfájlt.
Adja hozzá a kívánt küszöbértéket a szövegfájlhoz a következő formátumban:
CA1506(Method): 60 CA1506(Type): 120
Ebben a példában a szabály úgy van konfigurálva, hogy aktiválódjon, ha egy metódus több mint 60 egyedi típushivatkozással rendelkezik, vagy egy típus több mint 120 egyedi típushivatkozással rendelkezik. Ezzel a konfigurációs fájllal a szabály továbbra is megjelöli azokat a mezőket, tulajdonságokat és eseményeket, amelyek osztálykapcsolódása nagyobb az alapértelmezett küszöbértéknél (40).
A projektfájlban jelölje meg a konfigurációs fájl buildelési műveletét AdditionalFilesként. Például:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>