Fxcop 規則移植狀態
如果您先前在 Visual Studio 中使用靜態程式碼分析,您可能想知道目前實作中有哪些規則可做為 .NET 分析器使用。 此頁面會列出已移植的規則。 請參閱未移植的規則,以取得尚未移植的規則,以及是否有計劃移植這些規則。
移植的規則
roslyn-analyzers 存放庫中自動產生的文件頁面含有已移植到 Roslyn 分析器的最新規則清單。 該頁面也有其他資訊,例如是否預設啟用規則,以及是否有相關聯的「程式碼修正程式」。 (程式碼修正程式是 Visual Studio 燈泡圖示功能表中提供的單鍵修正程式。)
截至此頁面上的日期為止,已移植到 .NET 分析器的 FxCop 規則清單包括:
規則識別碼 | 標題 |
---|---|
CA1000 | 不要在泛型類型上宣告靜態成員 |
CA1001 | 具有可處置欄位的類型應該為可處置 |
CA1002 | 不要公開泛型清單 |
CA1003 | 使用一般事件處理常式執行個體 |
CA1005 | 避免在泛型類型上包含過多參數 |
CA1008 | 列舉值中應該要有值為零的成員 |
CA1010 | 集合應該實作泛型介面 |
CA1012 | 抽象類型不應該有建構函式 |
CA1014 | 將組件標記為 CLSCompliant |
CA1016 | 將組件標記為版本組件 |
CA1017 | 將組件標記為 ComVisible |
CA1018 | 必須以 AttributeUsageAttribute 標記屬性 |
CA1019 | 定義屬性引數的存取子 |
CA1021 | 避免使用 out 參數 |
CA1024 | 建議在適當時使用屬性 |
CA1027 | 必須以 FlagsAttribute 標記列舉 |
CA1028 | 列舉儲存體應該是 Int32 |
CA1030 | 建議在適當時使用事件 |
CA1031 | 不要攔截一般例外狀況類型 |
CA1032 | 必須實作標準例外狀況建構函式 |
CA1033 | 介面方法應該要可以由子類型呼叫 |
CA1034 | 巢狀類型不應該為可見的 |
CA1036 | 必須在 Comparable 類型中覆寫方法 |
CA1040 | 避免使用空的介面 |
CA1041 | 必須提供 ObsoleteAttribute 訊息 |
CA1043 | 針對索引子使用整數或字串引數 |
CA1044 | 屬性不應該為唯寫的 |
CA1045 | 不要以傳址方式傳遞類型 |
CA1046 | 不要多載參考類型上的等號比較運算子 |
CA1047 | 不要在密封類型中宣告 protected 成員 |
CA1050 | 類型必須在命名空間中宣告 |
CA1051 | 不要宣告可見的執行個體欄位 |
CA1052 | 靜態預留位置類型應為 Static 或 NotInheritable |
CA1053 | 靜態持有者類型不得有建構函式 (CA1053 屬於 .NET 分析器的 CA1052) |
CA1054 | URI 參數不得為字串 |
CA1055 | URI 傳回值不得為字串 |
CA1056 | URI 屬性不得為字串 |
CA1058 | 類型不應該擴充特定基底類型 |
CA1060 | 將 PInvoke 移到原生方法類別 |
CA1061 | 不要隱藏基底類別方法 |
CA1062 | 必須驗證公用方法的引數 |
CA1063 | 正確實作 IDisposable |
CA1064 | 例外狀況必須是公用 |
CA1065 | 不要在非預期的位置中引發例外狀況 |
CA1066 | 類型 {0} 應先實作 <T>,因為它會覆寫 Equals |
CA1067 | 實作 IEquatable<T> 時覆寫 Object.Equals(object) |
CA1303 | 不要將常值當作已當地語系化的參數傳遞 |
CA1304 | 必須指定 CultureInfo |
CA1305 | 必須指定 IFormatProvider |
CA1307 | 指定 StringComparison 以提升明確性 |
CA1308 | 必須將字串標準化為大寫字母 |
CA1309 | 使用序數字串比較 |
CA1401 | P/Invokes 不應該為可見的 |
CA1501 | 避免在物件間過度繼承 |
CA1502 | 避免造成過度複雜的方法 |
CA1505 | 應避免撰寫無法維護的程式碼 |
CA1506 | 應避免使用結合過度的類別 |
CA1700 | 不要在列舉值名稱中包含 'Reserved' |
CA1707 | 識別項名稱不應該包含底線 |
CA1708 | 識別項名稱不應該只靠大小寫區別 |
CA1710 | 識別項應該使用正確的後置字元 |
CA1711 | 識別項名稱不應該使用不正確的後置字元 |
CA1712 | 不要使用類型名稱作為列舉值的前置字元 |
CA1713 | 事件不應該有 before 或 after 前置字元 |
CA1714 | 旗標列舉應該使用複數名稱 |
CA1715 | 識別項名稱應該使用正確的前置字元 |
CA1716 | 識別項名稱不應該和關鍵字相符 |
CA1717 | 只有 FlagsAttribute 列舉應該使用複數名稱 |
CA1720 | 識別項包含類型名稱 |
CA1721 | 屬性名稱不應該和其中有 get 的方法名稱相符 |
CA1724 | 類型名稱不得與命名空間相符 |
CA1725 | 參數名稱應該符合基底類型的宣告 |
CA1801 | 必須檢閱未使用的參數 |
CA1802 | 適當時機使用常值 |
CA1805 | 請勿進行非必要的初始化 |
CA1806 | 不要忽略方法的結果 |
CA1810 | 必須將參考類型內部的靜態欄位初始化 |
CA1812 | 避免使用未執行個體化的內部類別 |
CA1813 | 避免使用非密封屬性 |
CA1814 | 建議使用不規則陣列取代多維陣列 |
CA1815 | 覆寫實值型別上的 Equals 和等號比較運算子 |
CA1816 | Dispose 方法應該呼叫 SuppressFinalize |
CA1819 | 屬性不應該傳回陣列 |
CA1820 | 應該使用字串長度測試空白字串 |
CA1821 | 移除空的完成項 |
CA1822 | 將成員標記為 static |
CA1823 | 避免包含未使用的私用欄位 |
CA1824 | 組件必須標記 NeutralResourcesLanguageAttribute |
CA1825 | 避免長度為零的陣列配置。 |
CA2000 | 必須在超出範圍前處置物件 |
CA2002 | 不要鎖定具有弱式識別的物件 |
CA2100 | 必須檢閱 SQL 查詢中是否有安全性弱點 |
CA2101 | 必須指定 P/Invoke 字串引數的封送處理 |
CA2109 | 必須檢閱可見的事件處理常式 |
CA2119 | 密封方法以滿足私用介面的要求 |
CA2153 | 請勿擷取損毀狀態例外狀況 |
CA2200 | 重新擲回以保存堆疊詳細資料。 |
CA2201 | 不要引發保留的例外狀況類型 |
CA2207 | 必須將實值類型的靜態欄位內嵌初始化 |
CA2208 | 必須正確執行個體化引數例外狀況 |
CA2211 | 非常數欄位不應該為可見的 |
CA2213 | 可處置的欄位應該受到處置 |
CA2214 | 不要呼叫建構函式中的可覆寫方法 |
CA2215 | Dispose 方法應該呼叫基底類別處置 |
CA2216 | 可處置的類型應該宣告完成項 |
CA2217 | 不要以 FlagsAttribute 標記列舉 |
CA2219 | 請勿在 finally 子句中引發例外狀況 |
CA2225 | 運算子多載必須有具名的替代方法 |
CA2226 | 運算子應該有對稱的多載 |
CA2227 | 集合屬性應該為唯讀 |
CA2229 | 必須實作序列化建構函式 |
CA2231 | 覆寫實值型別 Equals 時,多載等號比較運算子 |
CA2234 | 傳遞系統 Uri 物件而非字串 |
CA2235 | 必須標記所有不可序列化的欄位 |
CA2237 | ISerializable 型別必須標記 serializable |
CA2241 | 必須提供格式化方法的正確引數 |
CA2242 | 必須正確測試 NaN |
CA2243 | 屬性字串常值必須正確剖析 |
CA2300 | 請勿使用不安全的還原序列化程式 BinaryFormatter |
CA2301 | 未先設定 BinaryFormatter.Binder 之前,請勿呼叫 BinaryFormatter.Deserialize |
CA2302 | 呼叫 BinaryFormatter.Deserialize 之前,請務必先設定 BinaryFormatter.Binder |
CA2305 | 請勿使用不安全的還原序列化程式 LosFormatter |
CA2310 | 請勿使用不安全的還原序列化程式 NetDataContractSerializer |
CA2311 | 未先設定 NetDataContractSerializer.Binder 之前,請勿還原序列化 |
CA2312 | 還原序列化之前,請務必先設定 NetDataContractSerializer.Binder |
CA2315 | 請勿使用不安全的還原序列化程式 ObjectStateFormatter |
CA2321 | 請勿使用 SimpleTypeResolver 搭配 JavaScriptSerializer 來還原序列化 |
CA2322 | 還原序列化之前,請確定不會使用 SimpleTypeResolver 來將 JavaScriptSerializer 初始化 |
CA3001 | 檢閱程式碼是否有 SQL 插入式攻擊弱點 |
CA3002 | 檢閱程式碼是否有 XSS 弱點 |
CA3003 | 檢閱程式碼是否有檔案路徑插入式攻擊弱點 |
CA3004 | 檢閱程式碼是否有資訊洩漏弱點 |
CA3005 | 檢閱程式碼是否有 LDAP 插入式攻擊弱點 |
CA3006 | 檢閱程式碼是否有處理序命令插入式攻擊弱點 |
CA3007 | 檢閱程式碼是否有開放式重新導向弱點 |
CA3008 | 檢閱程式碼是否有 XPath 插入式攻擊弱點 |
CA3009 | 檢閱程式碼是否有 XML 插入式攻擊弱點 |
CA3010 | 檢閱程式碼是否有 XAML 插入式攻擊弱點 |
CA3011 | 檢閱程式碼是否有 DLL 插入式攻擊弱點 |
CA3012 | 檢閱程式碼是否有 regex 插入式攻擊弱點 |
CA3061 | 請勿透過 URL 新增結構描述 |
CA3075 | XML 中不安全的 DTD 處理 |
CA3076 | 不安全的 XSLT 指令碼處理。 |
CA3077 | API 設計、XmlDocument 及 XmlTextReader 中的不安全處理 |
CA3147 | 使用驗證 Antiforgery 權杖標記動詞命令處理常式 |
CA5350 | 請勿使用弱式密碼編譯演算法 |
CA5351 | 請勿使用損壞的密碼編譯演算法 |
CA5358 | 不要使用不安全的 Cipher 模式 |
CA5359 | 請勿停用憑證驗證 |
CA5360 | 請勿在還原序列化時呼叫危險的方法 |
CA5361 | 請勿停用安全通道的強式密碼編譯 |
CA5362 | 請勿在可序列化類別中參考自己 |
CA5363 | 請勿停用要求驗證 |
CA5364 | 請勿使用已取代的安全性通訊協定 |
CA5365 | 請勿停用 HTTP 標頭檢查 |
CA5366 | 針對 DataSet 讀取 XML 使用 XmlReader |
CA5367 | 請勿將具有指標欄位的類型序列化 |
CA5368 | 為衍生自頁面的類別設定 ViewStateUserKey |
CA5369 | 使用 XmlReader 進行還原序列化 |
CA5370 | 使用 XmlReader 驗證讀取器 |
CA5371 | 使用 XmlReader 讀取結構描述 |
CA5372 | 針對 XPathDocument 使用 XmlReader |
CA5373 | 不使用已過時的金鑰衍生函式 |
CA5374 | 請勿使用 XslTransform |
CA5375 | 請勿使用帳戶共用存取簽章 |
CA5376 | 請使用 SharedAccessProtocol HttpsOnly |
CA5377 | 使用容器層級存取原則 |
CA5378 | 請勿停用 ServicePointManagerSecurityProtocols |
CA5379 | 請勿使用弱式金鑰衍生函數 (Key Derivation Function) 演算法 |
CA9999 | 分析器版本不符 |
另請參閱
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應