4

生成されたコードを無視しない NDepend に少し問題があります。エンティティ データ モデルの作成時に EF によって生成された designer.cs ファイルのパラメーターが多すぎるメソッドに関する問題が検出されています。クラスは「自動生成」注釈でコメントされていますが、NDepend によってまだ取得されています。

*.designer.cs を強制的に無視する方法、またはワイルドカードなしで特定のファイルを無視する方法を見つけることができないようです。最も近いのは、数年前のこの投稿で、Patrick がこれを行う計画について言及していますが、それ以上のものはありません。

何か不足していますか?これを除外する簡単な方法はありますか?

4

1 に答える 1

5

Code Query and Rule over LINQ (CQLinq)は、生成されたコードを無視する機能を実際に提供します。

ICodeBaseView型のJustMyCodeという便利な定義済みドメインがあります。

ドメインJustMyCodeは、生成されたコード要素を CQLinq クエリ結果から削除する CQLinq の機能を表します。たとえば、次のクエリは、ツール (UI デザイナーなど) によって生成されていない大きなメソッドのみに一致します。

from m in JustMyCode.Methods where m.NbLinesOfCode > 30 select m

生成されたコード要素のセットは、CQLinq キーワードnotmycodeで始まる CQLinq クエリによって定義されます。たとえば、次のクエリは、名前が".designer.cs"で終わるソース ファイルで定義されたメソッドと一致します。

notmycode from m in Methods where
  m.SourceFileDeclAvailable && 
  m.SourceDecls.First().SourceFile.FileName.ToLower().EndsWith(".designer.cs")
select m

CQLinq クエリ ランナーは、 JustMyCode に依存するクエリの前にすべての notmycode クエリを実行しますしたがって、ドメインJustMyCodeは一度だけ定義されます。notmycodeクエリがJustMyCodeドメインに依存している場合、明らかに CQLinq コンパイラはエラーを出力します。

4 つのデフォルトの notmycodeクエリがあり、ニーズに合わせて簡単に調整できます。追加のnotmycodeクエリを作成することもできます。

于 2011-08-22T08:43:14.517 に答える