Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье рассматриваются различные способы подавления предупреждений из анализа кода при создании приложения .NET. Вы можете отключить правила качества кода, правила стиля кода и сторонние правила анализатора, используя приведенные здесь сведения.
Подсказка
Если вы используете Visual Studio в качестве среды разработки, меню лампочки предоставляет параметры, которые создают код для подавления предупреждений. Дополнительные сведения см. в разделе "Подавление нарушений".
Отключите правило
Вы можете отключить правило, вызывающее предупреждение, задав его серьезность none
в файле конфигурации EditorConfig или AnalyzerConfig. Это действие отключает правило для всего файла или проекта в зависимости от области используемого файла конфигурации.
[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none
Дополнительные сведения о серьезности правил см. в разделе "Настройка серьезности правил".
Использование директивы препроцессора
Используйте директиву #pragma (C#) или Disable (Visual Basic), чтобы отключить предупреждение только для определенной строки кода.
try { ... }
catch (Exception e)
{
#pragma warning disable CA2200 // Rethrow to preserve stack details
throw e;
#pragma warning restore CA2200 // Rethrow to preserve stack details
}
Try
...
Catch e As Exception
#Disable Warning CA2200 ' Rethrow to preserve stack details
Throw e
#Enable Warning CA2200 ' Rethrow to preserve stack details
End Try
Использование функции SuppressMessageAttribute
Можно использовать SuppressMessageAttribute для подавления предупреждения в исходном файле или в глобальном файле подавления проекта (GlobalSuppressions.cs или GlobalSuppressions.vb). Этот атрибут предоставляет способ подавления предупреждения только в определенных частях проекта или файла.
Два обязательных, позиционных параметра для SuppressMessageAttribute атрибута — это категория правила и идентификатор правила. Следующий фрагмент кода передает "Usage"
и "CA2200:Rethrow to preserve stack details"
для этих параметров.
[System.Diagnostics.CodeAnalysis.SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.")]
private static void IgnorableCharacters()
{
try
{
...
}
catch (Exception e)
{
throw e;
}
}
При добавлении атрибута в файл глобальных подавлений можно задать область подавления до требуемого уровня, например "member"
. Вы указываете API, в котором предупреждение должно быть подавлено с помощью свойства Target.
[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]
Используйте идентификатор документации для API, на который вы хотите ссылаться в атрибуте Target
. Сведения об идентификаторах документации см. в формате документации.
Чтобы отключить предупреждения для кода, созданного компилятором, который не сопоставляется с явным образом предоставленным источником пользователя, необходимо поместить атрибут подавления в глобальный файл подавления. Например, следующий код подавляет нарушение, связанное с конструктором, созданного компилятором:
[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]