CA1506:應避免使用結合過度的類別
屬性 | 值 |
---|---|
規則識別碼 | CA1506 |
標題 | 應避免使用結合過度的類別 |
類別 | 可維護性 |
修正程式是中斷或非中斷 | 中斷 |
默認閾值 | 類型:95 其他符號:40 |
預設在 .NET 8 中啟用 | No |
原因
類型、方法、欄位、屬性或事件會與許多其他類型結合。 編譯程式產生的類型會從這個計量中排除。
檔案描述
此規則會計算類型、方法、字段、屬性或事件所包含的唯一型別參考數目,以測量類別結合。 類型的默認結合閾值為95,而其他符號類型則為40,而 臨界值可設定。
具有高度類別結合的類型、方法和其他符號可能難以維護。 最好有類型、方法和其他符號,以表現出低結合和高凝聚力。
如何修正違規
若要修正此違規,請嘗試重新設計類型或方法,以減少其結合的類型數目。
隱藏警告的時機
您可以將類型或方法視為可維護時隱藏此警告,儘管其相依於其他類型的大量相依性。
注意
如果適用下列所有專案,您可能會看到來自此規則的誤判警告:
- 您使用 Visual Studio 2022 17.5 版或更新版本搭配舊版 .NET SDK,也就是 .NET 6 或更早版本。
- 您使用的是 .NET 6 SDK 或舊版分析器套件的分析器,例如 Microsoft.CodeAnalysis.FxCopAnalyzers。
誤判是由於 C# 編譯程式中的重大變更所造成。 請考慮使用包含誤判警告修正的較新分析器。 升級至 Microsoft.CodeAnalysis.NetAnalyzers 7.0.0-preview1.22464.1 版或更新版本,或使用 .NET 7 SDK 的分析器。
隱藏警告
如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。
#pragma warning disable CA1506
// The code that's violating the rule is on this line.
#pragma warning restore CA1506
若要停用檔案、資料夾或項目的規則,請在組態檔中將其嚴重性設定為 。none
[*.{cs,vb}]
dotnet_diagnostic.CA1506.severity = none
如需詳細資訊,請參閱 如何隱藏程式代碼分析警告。
設定臨界值
您可以設定此規則引發的臨界值,以及要分析的符號種類。 允許的符號種類如下:
Assembly
Namespace
Type
Method
Field
Event
Property
建立名為 CodeMetricsConfig.txt 的文字檔。
以下列格式將所需的臨界值新增至文字檔:
CA1506(Method): 60 CA1506(Type): 120
在此範例中,當方法有超過 60 個唯一類型參考或類型具有超過 120 個唯一類型參考時,規則會設定為引發。 使用此組態檔時,規則會繼續標記類別結合大於預設臨界值 (40) 的欄位、屬性和事件。
在項目檔中,將組態檔的建置動作標示為 AdditionalFiles。 例如:
<ItemGroup> <AdditionalFiles Include="CodeMetricsConfig.txt" /> </ItemGroup>