演练:对托管代码进行代码缺陷分析
通过使用代码分析工具,在本演练中,您分析代码缺陷的托管项目。
本演练使用代码分析来将逐步指导您分析一致性的 .NET 托管代码程序集与 Microsoft .NET framework 设计准则。
在本演练中,您可以:
- 分析并更正代码缺陷警告。
系统必备
- Visual Studio 高级专业版.
创建类库
创建类库 |
|
分析项目
分析代码缺陷的托管项目
选择在 解决方案资源管理器的 CodeAnalysisManagedDemo 项目。
在 项目 菜单上,单击 属性。
CodeAnalysisManagedDemo 属性页中显示。
单击 代码分析。
确保 启用代码在生成的分析 (定义了 CODE_ANALYSIS 常数) 进行检查。
从的 运行此规则集 下拉列表中,选择 Microsoft 的所有规则。
在 文件 菜单上,单击 保存选定项,然后关闭 ManagedDemo 属性页。
在 生成 菜单上,单击 生成 ManagedDemo。
CodeAnalysisManagedDemo 项目生成警告。 代码分析 和 输出 窗口中报告。
如果 代码分析 窗口不会显示,在 分析 菜单中,选择 窗口 然后 选择代码分析。
更正代码分析问题
更正代码分析规则冲突
在 视图 菜单上,单击 错误列表。
根据选择的开发人员配置文件,您可能必须指向在 视图 菜单的 其他窗口 ,然后单击 错误列表。
在 解决方案资源管理器,单击 显示所有文件。
接下来,展开属性节点,然后打开 AssemblyInfo.cs 文件。
使用下表更正警告:
警告 |
更正警告 |
---|---|
CA1014:用 CLSCompliantAttribute 标记程序集:Microsoft.Design:“应使用 CLSCompliantAttribute 来标记 " demo ",,其值应为 true。 |
|
CA1032:实现标准异常构造函数:Microsoft.Design:添加下面的构造函数添加到此类:public demo (字符串) |
|
CA1032:实现标准异常构造函数:Microsoft.Design:添加下面的构造函数添加到此类:public demo (字符串,异常) |
|
CA1032:实现标准异常构造函数:Microsoft.Design:添加下面的构造函数添加到此类:protected demo (SerializationInfo, StreamingContext) |
|
CA1032:实现标准异常构造函数:Microsoft.Design:添加下面的构造函数添加到此类:public demo () |
|
CA1709:标识符的大小写应当正确:Microsoft.Naming:更正命名空间名称 " testCode " 更改为 " TestCode。 |
|
CA1709:标识符的大小写应当正确:Microsoft.Naming:更正类型名称 “demo " 通过更改为 " Demo。 |
|
CA1709:标识符的大小写应当正确:Microsoft.Naming:更正成员名称 “item " 通过更改为 " Item。 |
|
CA1710:标识符应具有正确的后缀:Microsoft.Naming:重命名 " testCode.demo " 使其以 " Exception " 结尾。 |
|
CA2210:程序集应具有有效的强名称:签名 “使用强名称密钥对 " ManagedDemo。 |
|
CA2237:以 SerializableAttribute 标记 ISerializable 类型:Microsoft.Usage:将 [serializable] 特性添加到类型 " demo ",此类型实现 ISerializable。 |
|
在完成更改后, Class1.cs 文件应类似于:
//CodeAnalysisManagedDemo
//Class1.cs
using System;
using System.Runtime.Serialization;
namespace TestCode
{
[Serializable()]
public class DemoException : Exception
{
public DemoException () : base() { }
public DemoException(String s) : base(s) { }
public DemoException(String s, Exception e) : base(s, e) { }
protected DemoException(SerializationInfo info, StreamingContext context) : base(info, context) { }
public static void Initialize(int size) { }
protected static readonly int _item;
public static int Item { get { return _item; } }
}
}
排除代码分析警告
排除代码缺陷警告
对于每一个剩余警告,请执行以下操作:
在代码分析窗口中,选择该警告。
选择 操作,然后选择 禁止显示消息,然后选择 在项目禁止显示文件中。
有关更多信息,请参见 如何:使用菜单项禁止显示警告
重新生成项目。
不出现任何警告或错误的项目生成。