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