1. 程式人生 > >System.Diagnostics.CodeAnalysis.SuppressMessage 原始碼中禁止顯示

System.Diagnostics.CodeAnalysis.SuppressMessage 原始碼中禁止顯示

原始碼中禁止顯示是指通過使用 SuppressMessage屬性禁止顯示或忽略程式碼分析衝突的功能。SuppressMessage屬性是一個條件屬性,只有在編譯時定義了 CODE_ANALYSIS 編譯符號時,它才會包含在託管程式碼程式集的 IL 元資料中。 在 C++ 中,可以通過兩個巨集 CA_SUPPRESS_MESSAGE 和 CA_GLOBAL_SUPPRESS_MESSAGE 實現相同的目的。   建議您在除錯版本或簽入版本中使用原始碼中禁止顯示,以避免錯誤地提供原始碼中禁止顯示元資料以及由於元資料膨脹而影響執行或效能。 SuppressMessage 的用法   在應用 SuppressMessage 屬性的例項的級別上,禁止顯示程式碼分析警告。執行此操作的目的是為了使禁止顯示資訊與發生衝突的程式碼緊密耦合。 禁止顯示的一般形式包括規則類別和一個規則識別符號,該識別符號包含可選的規則名稱的使用者可讀表示形式。例如, [SuppressMessage("Microsoft.Design", "CA1039:ListsAreStrongTyped")] 如果出於嚴格的效能原因,要求最大程度地減少程式碼內禁止顯示元資料,則可以省略規則名稱本身。規則類別及其規則 ID 一起構成足夠唯一的規則識別符號。例如, [SuppressMessage("Microsoft.Design", "CA1039")] 出於可維護性的原因,建議不要使用該格式。   SuppressMessage 屬性   當您右擊“錯誤列表”中的某個程式碼分析警告並單擊“禁止顯示訊息”時,SuppressMessage 屬性將新增到您的程式碼中,或者新增到專案的全域性禁止顯示檔案中。 SuppressMessage 屬性的格式如下所示: C# [Scope:SuppressMessage("Rule Category", "Rule Id", "Justification", "MessageId", Scope = "Scope", Target = "Target")]其中:   Rule Category - 定義的規則所屬的類別。 Rule Id - 規則的識別符號。支援對規則 ID 的使用短名稱或長名稱。短名稱為 CAXXXX;長名稱為 CAXXXX:FriendlyTypeName。 Justification - 用於記錄禁止顯示訊息的原因的文字。 Message Id - 每個訊息的問題的唯一識別符號。 Scope - 在其上禁止顯示警告的目標。如果未指定目標,則設定為屬性的目標。支援的範圍包括:   模組 名稱空間 資源 型別 成員 引數 Target - 用於指定在其上禁止顯示警告的目標的識別符號。它必須包含完全限定的項名稱。