托管代码的“托管建议规则”规则集

可以使用“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

裹在外层的try脆弱的finally子句

CA2126

类型链接请求需要继承要求

CA2131

安全关键类型可能不参与类型等价

CA2132

默认构造函数必须至少与基类型默认构造函数一样关键

CA2133

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

CA2134

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

CA2137

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

CA2138

透明方法不得调用与SuppressUnmanagedCodeSecurity属性的方法

CA2140

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

CA2141

透明方法不得满足LinkDemands

CA2146

类型必须至少与其基类型和接口一样关键

CA2147

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

CA2149

透明方法不能调用本地代码

CA2200

重新抛出保存堆栈的详细信息

CA2202

不要多次释放对象

CA2207

以内联方式初始化值类型的静态字段

CA2212

不要使用 WebMethod 标记服务组件

CA2213

应释放可释放的字段

CA2214

不要调用构造函数重写的方法

CA2216

可释放类型应声明终结器

CA2220

终结器应调用基类的终结器

CA2229

实现序列化构造函数

CA2231

重写 ValueType.Equals 时应重载相等运算符

CA2232

使用 STAThread 标记 Windows 窗体的入口点

CA2235

标记所有不可序列化的字段

CA2236

对 ISerializable 的类调用基类方法

CA2237

以 SerializableAttribute 标记 ISerializable 类型

CA2238

正确实现序列化方法

CA2240

正确实现 ISerializable

CA2241

为格式化方法提供正确的参数

CA2242

正确测试NaN