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 分析器版本不符

另請參閱