ツールNDependを使用すると、FxCopを使用するよりもはるかに簡単に.NETコードにカスタムコードルールを記述できます。免責事項:私はツールの開発者の一人です
このツールを使用すると、LINQクエリ(CQLinqという名前)に対してカスタムコードルールを記述できます。たとえば、要求しているクエリは、CQLinqを使用して次のように記述できます。
// <Name>Don't use system controls</Name>
warnif count > 0
let systemControls = ThirdParty.Types.Where(
t => t.DeriveFrom("System.Windows.Forms.Control".AllowNoMatch()))
where systemControls.Count() > 0
from t in systemControls
let methodsThatCreateT = t.TypesUsingMe.ChildMethods().Where(m => m.CreateA(t))
select new { t, methodsThatCreateT }
このようなコードルールを編集している間、すぐに閲覧可能な結果が表示されます(ここでは3ミリ秒)。この結果の任意のタイプまたはメソッドをダブルクリックすると、VisualStudioのソースコードでの宣言にジャンプします。
200のデフォルトコードルールが提案されています。このツールは、Visual Studio 2012、2010、および2008に100%統合されています。デフォルトまたはカスタムコードルールは、Visual Studio内で、またはビルドプロセス時に生成されたHTML+javascriptレポートで検証できます。