名前が大文字で始まらないターゲット アセンブリ内のすべてのメソッドをチェックするカスタム fxcop ルールを作成しようとしています。私はこれを行うことにかなり成功していますが、1つの問題があります。このルールは、「デリゲート メソッド」に対してもエラーをスローします。私が望まないbtnOk_Click、定義済みのプロパティ/メソッドを使用してfxcopでデリゲートメソッドを識別/フィルタリングする方法はありますか?
1 に答える
1
代わりに、ツールNDependを使用してカスタムコードルールを作成することをお勧めします(免責事項:私はツールの開発者の1人です)。
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 に答える