托管代码的“基本更正规则”规则集

" 基本更正规则 " 规则集中的逻辑错误和常见错误的焦点在 framework API 时。 " 基本更正规则 " 规则集中最少量建议规则 " 规则集包括规则。 有关更多信息,请 托管代码的“托管建议规则”规则集 参见您在最少量建议规则报告的警告列表应加入此规则集扩展。

下表 " Microsoft 基本更正规则 " 规则集中描述的所有规则。

规则

说明

CA1001

类型拥有一次性字段应为可释放的

CA1009

正确声明事件处理程序

CA1016

使用标记 AssemblyVersionAttribute 的程序集

CA1033

接口方法应是可调用的由子类型

CA1049

类型拥有本机资源应是一次性的

CA1060

移动 P/Invokes 移到 NativeMethods 类

CA1061

不要隐藏了基类方法

CA1063

正确实现 IDisposable

CA1065

不要在意外的位置引发异常。

CA1301

避免重复快捷键

CA1400

P/Invoke 入口点应存在

CA1401

P/Invokes 不应可见

CA1403

自动布局类型不应是可见的 COM

CA1404

对 P/Invoke 后的 GetLastError

CA1405

COM 可见的类型基础类型应当可见的 COM

CA1410

COM 应与注册方法

CA1415

正确声明 P/Invokes

CA1821

移除空的终结器

CA1900

值类型字段应为可移植

CA1901

P/Invoke 声明应可移植

CA2002

不在对象的锁。弱标识

CA2100

检查安全漏洞的 SQL 查询

CA2101

封送指定 P/Invoke 字符串参数的

CA2108

在值类型的声明性安全检查

CA2111

指针不应可见

CA2112

受保护的类型不应显示字段

CA2114

方法安全应为类型扩展

CA2116

APTCA 方法只应调用 APTCA 方法

CA2117

APTCA 类型只应扩展 APTCA 基类型

CA2122

不要取消显示链接要求的方法

CA2123

重写链接要求应与中的基础

CA2124

在外部尝试的换行易受攻击的最后子句

CA2126

键入链接要求继承要求

CA2131

安全关键类型不能参与类型等效

CA2132

默认构造函数必须至少具有重要的与基类型默认构造函数

CA2133

委托必须绑定到具有一致的透明度的方法

CA2134

,并重写基方法时,方法必须保持一致的透明度

CA2137

透明方法必须只包含可验证的 IL

CA2138

透明方法不能调用使用 SuppressUnmanagedCodeSecurity 属性的方法

CA2140

透明代码不能引用安全关键项目

CA2141

透明方法不能满足 Linkdemand

CA2146

类型必须至少具有重要的与它们的基类型约束和接口

CA2147

透明方法不能使用安全断言

CA2149

透明方法不能调用到本机代码

CA2200

保留堆栈详细信息的重新

CA2202

不要配置对象多次

CA2207

初始化值类型静态字段内联

CA2212

不要用 WebMethod 的服务组件

CA2213

应配置一次性字段

CA2214

不要对构造函数的可重写的方法

CA2216

一次性类型应声明终结器

CA2220

终结器应调用基类终结器

CA2229

实现序列化构造函数

CA2231

重载在重写 ValueType.Equals 的相等运算符

CA2232

标记窗口入学人数表点与 STAThread

CA2235

标记所有非可序列化字段

CA2236

调用了 ISerializable 类型的基类方法

CA2237

用 SerializableAttribute 的实现 ISerializable 类型

CA2238

正确执行序列化方法

CA2240

正确实现 ISerializable

CA2241

提供正确的参数传递给格式的方法

CA2242

正确测试 Nan

CA1008

枚举应具有零值

CA1013

重载在重载运算符等于增加和减少

CA1303

不要将文本充当本地化的参数

CA1308

将字符串正常化为大写

CA1806

不要忽略的方法结果

CA1816

正确调用 GC.SuppressFinalize

CA1819

属性不应返回数组

CA1820

使用字符串长度,测试空字符串

CA1903

使用从目标结构的 API 仅

CA2004

移除对 GC.KeepAlive

CA2006

使用 SafeHandle 封装本机资源

CA2102

捕获一般处理程序的非 CLSCompliant 异常

CA2104

只不要声明读取的可变引用类型

CA2105

不应只读数组字段

CA2106

安全断言

CA2115

,在使用本机资源时,请调用 GC.KeepAlive

CA2119

密封满足专用接口的方法

CA2120

安全序列化构造函数

CA2121

静态构造函数应当是专用

CA2130

安全关键常数应透明

CA2205

使用 Win32 API 托管等效项

CA2215

dispose 方法应调用基类配置

CA2221

应保护终结器

CA2222

不要降低继承的成员可见性

CA2223

成员应由多个不同的返回类型

CA2224

在重载运算符相等的 override equals

CA2226

运算符应具有对称重载

CA2227

应只读取集合属性

CA2239

为可选字段提供反序列化方法