2

一部のクラスで特定のメソッド (Dispose など) が使用可能かどうかを確認するには、NDepend でカスタム ルールを作成する必要があります。メソッドを含まないクラスには警告を与える必要があります。

次のコードは、メソッドの可用性をチェックする必要があるすべてのクラスを提供します。

let ManagerClasses =
 from a in Application.Types
 where a.IsClass && a.Name.EndsWith("Manager")
 select a

次のコードは、メソッドを実際に含むクラスを示します。

let ManagerClassesWithDispose =
 from b in ManagerClasses
 from m in b.Methods
 where m.Name == "Dispose()"
 select b

メソッドを含まないクラスを取得するには? CQLinqで何とか(ab)を見つけることは可能ですか?

4

1 に答える 1

1

このような状況では、句を使用してセットを定義する必要はありません。次のようletに記述できます。

 from a in Application.Types
 where a.IsClass && a.Name.EndsWith("Manager") &&
    a.Methods.WithSimpleName("Dispose").FirstOrDefault() == null
 select a
于 2014-10-21T13:49:27.367 に答える