我正在尝试创建一个自定义 fxcop 规则,该规则检查目标程序集中的所有方法,它们的名称不是以大写字母开头。我在这方面做得非常成功,但有一个问题。该规则也会为“委托方法”引发错误,例如。我不想要的 btnOk_Click,有没有办法使用任何预定义的属性/方法来识别/过滤 fxcop 中的委托方法?
问问题
218 次
1 回答
1
一个想法是通过工具NDepend编写自定义代码规则(免责声明:我是该工具的开发人员之一)。
NDepend 专门设计用于通过 LINQ 查询轻松进行自定义代码规则编辑。以下代码查询 LINQ (CQLinq) 查询满足您的需求:
// <Name>Method name MUST start with CAPITAL</Name>
warnif count > 0
from m in Application.Assemblies.WithName("TargetAssemblyName").ChildMethods()
where
!m.IsSpecialName && // Remove getter and setter
!m.IsGeneratedByCompiler && // Discard methods generated by compiler
!m.ParentType.IsDelegate &&
!m.NameLike("^btn") && // Use regex here to discard btnOk_Click like method
!char.IsUpper(m.SimpleName[0])
select m
只需在 VS 的 NDepend 查询编辑器中编写此代码规则,即可立即获得反馈:
NDepend 代码规则可以在 VS 中实时执行/验证,或者可以在构建过程时执行并在报告中验证。
于 2012-12-05T10:51:37.103 回答