Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano różne sposoby pomijania ostrzeżeń z analizy kodu podczas tworzenia aplikacji platformy .NET. Reguły jakości kodu, reguły stylu kodu i reguły analizatora innych firm można pominąć, korzystając z informacji podanych tutaj.
Wskazówka
Jeśli używasz programu Visual Studio jako środowiska programistycznego, menu żarówki zawiera opcje, które generują kod do wyłączania ostrzeżeń. Aby uzyskać więcej informacji, zobacz Tłumienie naruszeń.
Wyłącz regułę
Regułę powodującą ostrzeżenie można wyłączyć, ustawiając jej ważność na none
w pliku konfiguracji EditorConfig lub AnalyzerConfig. Ta akcja wyłącza regułę dla całego pliku lub projektu w zależności od zakresu używanego pliku konfiguracji.
[*.{cs,vb}]
dotnet_diagnostic.<rule-ID>.severity = none
Aby uzyskać więcej informacji na temat ważności reguł, zobacz Konfigurowanie ważności reguły.
Używanie dyrektywy preprocesora
Użyj dyrektywy #pragma warning (C#) lub Disable (Visual Basic), aby pominąć warning tylko dla określonego wiersza kodu.
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
Użyj atrybutu SuppressMessageAttribute
Można użyć elementu SuppressMessageAttribute, aby pominąć ostrzeżenie w pliku źródłowym lub w pliku globalnych pominięć dla projektu (GlobalSuppressions.cs lub GlobalSuppressions.vb). Ten atrybut umożliwia pomijanie ostrzeżenia tylko w niektórych częściach projektu lub pliku.
Dwa wymagane parametry pozycyjne atrybutu SuppressMessageAttribute są kategorią reguły i identyfikatorem reguły. Poniższy fragment kodu przekazuje "Usage"
i "CA2200:Rethrow to preserve stack details"
dla tych parametrów.
[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;
}
}
W przypadku dodania atrybutu do pliku globalnych pominięć, określasz zakres pominięcia do żądanego poziomu (na przykład "member"
). Należy określić interfejs API, przy użyciu właściwości Target, w którym powinno zostać pominięte ostrzeżenie.
[assembly: SuppressMessage("Usage", "CA2200:Rethrow to preserve stack details", Justification = "Not production code.", Scope = "member", Target = "~M:MyApp.Program.IgnorableCharacters")]
Użyj identyfikatora dokumentacji interfejsu API, do którego chcesz się odwołać w atrybucie Target
. Aby uzyskać informacje na temat identyfikatorów dokumentacji, zobacz format identyfikatora dokumentacji.
Aby pominąć ostrzeżenia dotyczące kodu generowanego przez kompilator, który nie odnosi się do jawnie podanego źródła użytkownika, należy umieścić atrybut wyciszania w pliku globalnych wyciszeń. Na przykład poniższy kod pomija naruszenie względem konstruktora emitowanego przez kompilator:
[module: SuppressMessage("Design", "CA1055:AbstractTypesDoNotHavePublicConstructors", Scope="member", Target="MyTools.Type..ctor()")]