Fxcop 规则移植状态

如果之前在 Visual Studio 中使用过静态代码分析,你可能想知道在当前实现中,哪些规则作为 .NET 分析器提供。 此页列出已移植的规则。 请参阅未移植的规则,了解尚未移植的规则,以及是否有移植这些规则的计划。

移植的规则

roslyn-analyzers 存储库中的自动生成文档页面包含已移植到 Roslyn 分析器的最新规则列表。 该页面还包含其他信息,例如该规则默认是否启用以及它是否具有关联的代码修复。 (代码修复是 Visual Studio 中灯泡图标菜单中可用的一键修复。)

截至本页面上的日期,已移植到 .NET 分析器的 FxCop 规则列表包括:

规则 ID 标题
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 重写可比较类型中的方法
CA1040 避免使用空接口
CA1041 提供 ObsoleteAttribute 消息
CA1043 将整型或字符串参数用于索引器
CA1044 属性不应是只写的
CA1045 不要通过引用来传递类型
CA1046 不要对引用类型重载相等运算符
CA1047 不要在密封类型中声明受保护的成员
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} 应实现 IEquatable<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 Flags 枚举应采用复数形式的名称
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 传递 system uri 对象,而不传递字符串
CA2235 标记所有不可序列化的字段
CA2237 用 serializable 标记 ISerializable 类型
CA2241 为格式化方法提供正确的参数
CA2242 正确测试 NaN
CA2243 特性字符串文本应正确分析
CA2300 请勿使用不安全的反序列化程序 BinaryFormatte
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 查看正则表达式注入漏洞的代码
CA3061 请勿按 URL 添加架构
CA3075 XML 中不安全的 DTD 处理
CA3076 不安全的 XSLT 脚本处理。
CA3077 API 设计、XmlDocument 和 XmlTextReader 中不安全的处理
CA3147 用验证防伪令牌标记谓词处理程序
CA5350 请勿使用弱加密算法
CA5351 请勿使用损坏的加密算法
CA5358 请勿使用不安全的密码模式
CA5359 请勿禁用证书验证
CA5360 请勿在反序列化中调用危险的方法
CA5361 请勿禁用强加密的 Schannel 使用
CA5362 请勿在可序列化类中引用自身
CA5363 请勿禁用请求验证
CA5364 请勿使用已弃用的安全协议
CA5365 请勿禁用 HTTP 头检查
CA5366 将 XmlReader 用于数据集读取 XML
CA5367 请勿序列化具有 Pointer 字段的类型
CA5368 针对派生自 Page 的类设置 ViewStateUserKey
CA5369 将 XmlReader 用于反序列化
CA5370 将 XmlReader 用于验证读取器
CA5371 将 XmlReader 用于架构读取
CA5372 将 XmlReader 用于 XPathDocument
CA5373 请勿使用已过时的密钥派生功能
CA5374 请勿使用 XslTransform
CA5375 请勿使用帐户共享访问签名
CA5376 使用 SharedAccessProtocol HttpsOnly
CA5377 使用容器级别访问策略
CA5378 不禁用 ServicePointManagerSecurityProtocols
CA5379 请勿使用弱密钥派生功能算法
CA9999 分析器版本不匹配

另请参阅