2

我知道 FxCOP 自定义规则适用于 IL 代码。还已经创建了一个自定义规则来检查方法的输入参数的数量。现在,我想知道我们是否可以创建自定义规则来在类文件中实现评论比率(即 1:15)。请让我知道你的看法。

4

2 回答 2

8

由于 FxCop 只看到编译后的 IL,因此它不能真正对仅在源代码中可用的东西做出判断。如果您想对源代码本身做一些事情,则需要使用在该级别上运行的检查器。

StyleCop或可能是Roslyn CTP将是实施您的规则的候选人。ResharperCodeRush的自定义插件也可以工作。

正如 Patrick 指出的那样,NDepend 附带了这个功能。

于 2013-05-29T07:11:12.397 回答
1

FxCop 不解析 (C#) 源文件,它只将分析重点放在 IL 编译代码上。因此 FxCop 不知道源文件中的注释。


或者,您可以使用工具NDepend编写自定义代码规则,以使用 C# 检查类文件中的评论比率免责声明:我是该工具的开发人员之一)。

NDepend 是一个 IL 静态分析器,它还解析 C# 源文件以收集注释代码指标(更多详细信息请参见:Understanding NDepend Analysis Inputs)。

另外,NDepend 让我们通过 C# LINQ 查询来查询代码,查询可以在前缀为 warnif count > XX. 因此,使用 C# 编写 LINQ 代码规则以检查类文件中的注释比率可以像编写一样简单:

// <Name>Types not enough commented</Name>
warnif count > 0
from t in Application.Types
where t.NbLinesOfCode > 0 
let commentRatio = t.NbLinesOfComment / (float)t.NbLinesOfCode
where commentRatio < 0.5 // Require at least 50% of comments
orderby commentRatio descending
select new { t, 
             commentRatio , 
             t.NbLinesOfComment, 
             t.NbLinesOfCode 
           }

此代码规则可以在 Visual Studio 中实时编辑和执行,并且类型集结果演示附带了按程序集/命名空间分组以及跳转到源代码中的类型定义的工具:

比率 注释 CQLinq NDepend

这样的代码规则可以在 Visual Studio 中实时检查,并且在构建过程时可以创建HTML+JS 报告。此外,还提供了大约200 个默认代码规则

于 2013-05-29T14:06:18.323 回答