![](/img/trans.png)
[英]How to Add Custom Rule to FXCop for avoiding == operator inside the method
[英]How to identify a Method in fxcop
我正在尝试创建一个自定义fxcop规则,该规则检查目标程序集中具有其名称不是以CAPITAL字母开头的所有方法。 我这样做很成功,但是有一个问题。 例如,该规则也会对“代理方法”引发错误。 我不想要的btnOk_Click,是否可以使用任何预定义的属性/方法在fxcop中标识/过滤委托方法?
一个想法是改为通过工具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中实时执行/验证 ,或者可以在“构建过程”时执行并在报告中进行验证 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.