Предупреждения анализа кода в сгенерированном коде (например, миграции) - Visual Studio (C#) - PullRequest
0 голосов
/ 01 мая 2020

Большинство предупреждений, которые в настоящее время появляются в моем проекте, относятся к коду, который был сгенерирован автоматически. В большинстве случаев это так (CA1062: проверка аргументов методов publi c). Я заметил, что даже консольное приложение hello word, сгенерированное предупреждением об отображении Visual Studio (S1118: У служебных классов не должно быть publi c конструкторов).

Как отключить предупреждения для автоматически сгенерированного кода? (в основном миграции)

Ответы [ 2 ]

1 голос
/ 01 мая 2020

Как говорит crgolden, вы можете добавить тег // <auto-generated/> в начале файла. НО я буду осторожен с такими файлами, в которых инструменты генератора решили не добавлять его. В частности, вы упоминаете миграции - вы должны просматривать их перед коммитом, EF иногда делает удивительные вещи (*). Этот обзор также является хорошим временем для исправления любых предупреждений, которые вас беспокоят. Если вы заботитесь о предупреждении, чтобы оставить его включенным, отключение его во время миграции создает плохой прецедент. И если вас это не волнует, вы можете отключить его глобально.

Мой взгляд на автоматически сгенерированный комментарий заключается в том, что он принадлежит к файлам, которые восстанавливаются вне вашего контроля, или часто, или вместе. Поскольку мы используем EF в качестве примера, ModelSnapshot является хорошим кандидатом, и инструменты миграции действительно включают его. .Designer.cs файлы также создаются с ним. И его почти никогда не следует добавлять вручную (**)

(*), удаляйте один столбец и добавляйте другой, вы можете найти миграцию с действием переименования, если они имеют похожие типы. Или ваша коллега внесла некоторые изменения в код и забыла сгенерировать миграцию для него - теперь ваша миграция будет включать изменения от обоих, и его часть будет непроверена.

(**), поскольку каждое правило нуждается в исключении, недавно я рассматривал вопрос о нарушении этого правила для сторонней библиотеки, которую мы импортировали в проект как исходные файлы. В итоге я решил просто установить весь проект на уровень предупреждения 0.

1 голос
/ 01 мая 2020

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

// <auto-generated/>
...