Исключить полное пространство имен из анализа кода FxCop?
Можно ли исключить полное пространство имен из всего анализа FxCop, все еще анализируя остальную часть сборки с помощью SuppressMessageAttribute
?
В моем текущем случае у меня есть куча классов, сгенерированных LINQ to SQL, которые вызывают много проблем FxCop, и, очевидно, я не буду модифицировать все те, которые соответствуют стандартам FxCop, так как многие из этих изменений будут если я повторно создал классы.
Я знаю, что у FxCop есть опция проекта для подавления анализа сгенерированного кода, но он, похоже, не распознает классы сущности и контекста, созданные LINQ 2 SQL, как сгенерированный код.
Ответы
Ответ 1
Если вы помечаете свои классы атрибутом [GeneratedCode]
, вы можете использовать флаг /ignoregeneratedcode с FxCop, как описано в этой статье MSDN:
Часто задаваемые вопросы: Как предотвратить предотвращение FxCop предупреждениями против сгенерированного кода
Возможно, вам придется добавить новый файл кода и реализовать новые частичные классы, чтобы добавить атрибут в классы:
[GeneratedCode]
public partial class MainDataContext { }
Просто убедитесь, что вы добавляете все в правильное пространство имен при создании нового файла.
Ответ 2
Добавьте [GeneratedCode] attribute
в классы.
EDIT: я имел в виду частичные классы с одинаковыми именами, что объяснялось другим ответом.
Ответ 3
Использовать атрибут сгенерированный код, есл сообщение в блоге из команды Code Analysis по этому вопросу.
Это в верхней части пространства имен должно сделать трюк:
[GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
Ответ 4
<Assembly: SuppressMessage("Microsoft.Design", _
"CA1020:AvoidNamespacesWithFewTypes", _
Scope:="namespace", _
Target:="Missico.IO")>
Заставить оператор в GlobalSuppressions.vb
в корне проекта.
Все, что у меня есть, это пример VB.