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