CA1506: Vyhněte se nadměrnému párování tříd

Vlastnost Hodnota
ID pravidla CA1506
Název Vyhněte se nadměrnému párování tříd
Kategorie Udržovatelnost
Oprava způsobující chybu nebo chybu způsobující chybu Narušující
Výchozí prahová hodnota Typy: 95 Další symboly: 40
Povoleno ve výchozím nastavení v .NET 8 No

Příčina

Typ, metoda, pole, vlastnost nebo událost je svázán s mnoha dalšími typy. Z této metriky jsou vyloučeny typy generované kompilátorem.

Popis pravidla

Toto pravidlo měří párování tříd počítáním počtu jedinečných odkazů na typ, metodu, pole, vlastnost nebo událost. Výchozí prahová hodnota párování je 95 pro typy a 40 pro jiné druhy symbolů a prahové hodnoty jsou konfigurovatelné.

Typy, metody a další symboly, které mají vysoký stupeň párování tříd, může být obtížné udržovat. Je vhodné mít typy, metody a další symboly, které vykazují nízkou spojku a vysokou soudržnost.

Jak opravit porušení

Chcete-li toto porušení vyřešit, zkuste přepracovat typ nebo metodu, abyste snížili počet typů, ke kterým je svázán.

Kdy potlačit upozornění

Toto upozornění můžete potlačit, pokud je typ nebo metoda považována za udržovatelnou i přes jeho velký počet závislostí na jiných typech.

Poznámka:

Falešně pozitivní upozornění z tohoto pravidla se můžou zobrazit, pokud platí všechny tyto skutečnosti:

  • Používáte Sadu Visual Studio 2022 verze 17.5 nebo novější se starší verzí sady .NET SDK, tj. .NET 6 nebo starší.
  • Používáte analyzátory ze sady .NET 6 SDK nebo starší verze balíčků analyzátoru, například Microsoft.CodeAnalysis.FxCopAnalyzers.

Falešně pozitivní výsledky jsou způsobeny zásadní změnou kompilátoru jazyka C#. Zvažte použití novějšího analyzátoru, který obsahuje opravu falešně pozitivních upozornění. Upgradujte na Microsoft.CodeAnalysis.NetAnalyzers verze 7.0.0-preview1.22464.1 nebo novější nebo použijte analyzátory ze sady .NET 7 SDK.

Potlačení upozornění

Pokud chcete pouze potlačit jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, abyste pravidlo zakázali a znovu povolili.

#pragma warning disable CA1506
// The code that's violating the rule is on this line.
#pragma warning restore CA1506

Pokud chcete pravidlo pro soubor, složku nebo projekt zakázat, nastavte jeho závažnost v none konfiguračním souboru.

[*.{cs,vb}]
dotnet_diagnostic.CA1506.severity = none

Další informace naleznete v tématu Jak potlačit upozornění analýzy kódu.

Konfigurace prahové hodnoty

Můžete nakonfigurovat prahovou hodnotu, při které se toto pravidlo aktivuje, a druhy symbolů, které se mají analyzovat. Povolené druhy symbolů jsou:

  • Assembly
  • Namespace
  • Type
  • Method
  • Field
  • Event
  • Property
  1. Vytvořte textový soubor s názvem CodeMetricsConfig.txt.

  2. Do textového souboru přidejte požadovanou prahovou hodnotu v následujícím formátu:

    CA1506(Method): 60
    CA1506(Type): 120
    

    V tomto příkladu se pravidlo nakonfiguruje tak, aby se aktivovalo, pokud má metoda více než 60 odkazů na jedinečný typ nebo má více než 120 jedinečných odkazů na typ. V tomto konfiguračním souboru bude pravidlo dál označit pole, vlastnosti a události, jejichž párování tříd je větší než výchozí prahová hodnota (40).

  3. V souboru projektu označte akci sestavení konfiguračního souboru jako AdditionalFiles. Příklad:

    <ItemGroup>
      <AdditionalFiles Include="CodeMetricsConfig.txt" />
    </ItemGroup>
    

Viz také