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 | 分析器版本不匹配 |
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈