1

名前が大文字で始まらないターゲット アセンブリ内のすべてのメソッドをチェックするカスタム fxcop ルールを作成しようとしています。私はこれを行うことにかなり成功していますが、1つの問題があります。このルールは、「デリゲート メソッド」に対してもエラーをスローします。私が望まないbtnOk_Click、定義済みのプロパティ/メソッドを使用してfxcopでデリゲートメソッドを識別/フィルタリングする方法はありますか?

4

1 に答える 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カスタムコードルール

NDependコードルールは、VSでライブで実行/検証することも、ビルドプロセス時に実行してレポートで検証することもできます。

于 2012-12-05T10:51:37.103 に答える