CA1014:組件必須標記 CLSCompliantAttribute

屬性
規則識別碼 CA1014
標題 組件必須標記 CLSCompliantAttribute
類別 設計
修正程式是中斷或非中斷 不中斷
預設在 .NET 8 中啟用 No

原因

元件未 System.CLSCompliantAttribute 套用屬性。

檔案描述

Common Language Specification (CLS) 會定義命名限制、資料類型及組件必須遵守的規則 (如果組件會使用於跨程式設計語言時)。 良好的設計規定所有元件都明確表示與 CLSCompliantAttribute的 CLS 合規性。 如果元件上沒有 屬性,則元件不符合規範。

符合 CLS 標準的元件可以包含不符合規範的類型或類型成員。

如何修正違規

若要修正此規則的違規,請將 屬性新增至元件。 您應該判斷哪一個類型或類型成員不符合規範,並將這些項目標示為不符合規範,而不是將整個元件標示為不符合規範。 可能的話,您應該為不符合規範的成員提供符合 CLS 規範的替代方案,讓最廣泛的物件可以存取元件的所有功能。

隱藏警告的時機

請勿隱藏此規則的警告。 如果您不希望元件符合規範,請套用 屬性並將其值設定為 false

隱藏警告

如果您只想要隱藏單一違規,請將預處理器指示詞新增至原始程式檔以停用,然後重新啟用規則。

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

若要停用檔案、資料夾或項目的規則,請在組態檔中將其嚴重性設定為 。none

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

如需詳細資訊,請參閱 如何隱藏程式代碼分析警告

範例

下列範例顯示已套用 屬性的 System.CLSCompliantAttribute 元件,宣告為CLS相容。

[assembly:CLSCompliant(true)]
namespace DesignLibrary {}
<assembly:CLSCompliant(true)>
Namespace DesignLibrary
End Namespace

另請參閱