Исключить полное пространство имен из анализа кода FxCop? - PullRequest
22 голосов
/ 09 декабря 2008

Можно ли исключить полное пространство имен из всего анализа FxCop, в то же время анализируя остальную часть сборки, используя SuppressMessageAttribute?

В моем текущем случае у меня есть несколько классов, сгенерированных LINQ to SQL, которые вызывают много проблем с FxCop, и, очевидно, я не буду изменять все из них в соответствии со стандартами FxCop, так как многие из этих модификаций будут ушел, если я заново сгенерировал классы.

Я знаю, что FxCop имеет опцию проекта для подавления анализа сгенерированного кода, но, похоже, он не распознает классы сущностей и контекста, созданные LINQ 2 SQL, как сгенерированный код.

Ответы [ 4 ]

18 голосов
/ 01 сентября 2010

Если вы пометите свои классы атрибутом [GeneratedCode], вы можете использовать флаг / ignoregeneratedcode с FxCop, как описано в этом сообщении MSDN:

FAQ: Как запретить FxCop запускать предупреждения для сгенерированного кода

Возможно, вам придется добавить новый файл кода и реализовать там новые частичные классы, чтобы добавить атрибут к классам:

[GeneratedCode]
public partial class MainDataContext { }

Просто убедитесь, что вы добавляете все в правильное пространство имен при создании нового файла.

5 голосов
/ 01 сентября 2010

Добавьте [GeneratedCode] attribute к классам.
РЕДАКТИРОВАТЬ : Я имел в виду частичные классы с одинаковыми именами, как объяснил другой ответ.

1 голос
/ 09 марта 2010
<Assembly: SuppressMessage("Microsoft.Design", _
    "CA1020:AvoidNamespacesWithFewTypes", _
    Scope:="namespace", _
    Target:="Missico.IO")> 

Поместить оператор в GlobalSuppressions.vb в корень проекта.

Все, что у меня есть, это пример VB.

1 голос
/ 09 декабря 2008

Используйте атрибут сгенерированного кода, вот сообщение в блоге от группы анализа кода по теме.

Это в верхней части пространства имен должно помочь:

[GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0")]
...