Альтернативой беспорядку написания правил FxCop было бы использование инструмента NDepend. Этот инструмент позволяет писать правила кода для запросов C # LINQ , что мы называем CQLinq . Отказ от ответственности: я один из разработчиков инструмента
По умолчанию предлагается более 200 правил кода . Настроить существующие правила или создать свои собственные правила просто благодаря хорошо известному синтаксису C # LINQ .
Как написать инструмент анализа кода для vs2008, чтобы предотвратить вызов определенного фреймворка, такой как GC.WaitForFullGCComplete () или Application.DoEvents ()
Для этой конкретной потребности достаточно простого следующего правила CQLinq (обратите внимание на использование AllowNoMatch () , чтобы это правило работало в любой ситуации):
// <Name>Don't call these methods</Name>
warnif count > 0
from m in Methods
where m.IsUsing ("System.GC.WaitForFullGCComplete()".AllowNoMatch()) ||
m.IsUsing ("System.GC.WaitForFullGCComplete(Int32)".AllowNoMatch()) ||
m.IsUsing ("System.Windows.Forms.Application.DoEvents()".AllowNoMatch())
select m
CQLinq-запросы можно редактировать в реальном времени в VisualStudio и предлагать мгновенный результат с возможностями просмотра результатов:
Давайте уточним, что правила можно проверить вживую в Visual Studio и во время процесса сборки, в сгенерированном отчете HTML + javascript .