繁体   English   中英

如何在fxcop中识别方法

[英]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自定义代码规则

NDepend代码规则可以在VS中实时执行/验证 ,或者可以在“构建过程”时执行并在报告中进行验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM