Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
| Eigenschaft | Wert |
|---|---|
| Regel-ID | CA2252 |
| Titel | Vorschaufunktionen vor der Nutzung aktivieren |
| Kategorie | Verwendung |
| Fix führt zu Unterbrechungen oder bleibt funktionsfähig | Untrennbar |
| Standardmäßig in .NET 10 aktiviert | Als Fehler betrachtet |
| Anwendbare Sprachen | C# und Visual Basic |
Ursache
Ein Client verwendet Vorschau-APIs oder Vorschau-Typen in seiner Assembly, ohne sie entweder lokal oder auf Modul- oder Assemblyebene explizit zu aktivieren.
Regelbeschreibung
Wenn eine API oder Assembly verwendet wird, die mit dem Attribut RequiresPreviewFeaturesAttribute versehen ist, überprüft diese Regel, ob die Aufrufstelle die Vorschaufunktionen unterstützt. Ein Aufrufstelle hat Vorschaufunktionen aktiviert, wenn eine der folgenden Bedingungen zutrifft:
- Sie befindet sich innerhalb des Bereichs einer
RequiresPreviewFeaturesAttribute-Anmerkung. - Es ist Teil einer Assembly oder eines Moduls, bei denen bereits Vorschaufeatures aktiviert wurden.
In der folgenden Abbildung sehen Sie ein Beispiel für die CA2252-Diagnose.
Hier ist Lib ein Vorschautyp, der in der Methode Main erstellt wird.
Main selbst ist nicht als Vorschaumethode markiert, sodass Diagnosen für die beiden Konstruktoraufrufe innerhalb von Main erstellt werden.
So beheben Sie Verstöße
Es gibt zwei Möglichkeiten, Verstöße zu beheben:
Bringen Sie eine Aufrufstelle in den Geltungsbereich einer Anmerkung, indem Sie das übergeordnete Element mit
RequiresPreviewFeaturesAttributeannotieren. Im vorherigen Beispiel istAPreviewMethodmit dem AttributRequiresPreviewFeaturesversehen, sodass das Analysetool die Verwendung des Vorschautyps inAPreviewMethodignoriert. Daraus folgt, dass Aufrufer vonAPreviewMethodeine ähnliche Aktion ausführen müssen.Sie können Vorschaufeatures auch auf der Assembly- oder Modulebene aktivieren. Dadurch wird dem Analysetool mitgeteilt, dass die Verwendung des Vorschautyps in der Assembly gewünscht ist. Somit werden von dieser Regel keine Fehler erzeugt. Dies ist die bevorzugte Methode zur Nutzung von Abhängigkeiten in Vorschauversion. Um Vorschaufeatures innerhalb der gesamten Assembly zu aktivieren, legen Sie die Eigenschaft EnablePreviewFeatures in einer
.csproj-Datei fest:
<PropertyGroup>
<EnablePreviewFeatures>true</EnablePreviewFeatures>
</PropertyGroup>
Wann sollten Warnungen unterdrückt werden?
Das Unterdrücken der von dieser Regel generierten Warnungen wird nur für fortgeschrittene Anwendungsfälle empfohlen, in denen die Diagnose für APIs explizit deaktiviert werden muss. In diesem Fall müssen Sie dazu bereit sein, die Verantwortung für die entsprechende Kennzeichnung von Vorschau-APIs zu übernehmen. Stellen Sie sich beispielsweise einen Fall vor, in dem ein vorhandener Typ eine neue Vorschauschnittstelle implementiert. Da nicht der gesamte Typ als Vorschau gekennzeichnet werden kann (aus Gründen der Abwärtskompatibilität), kann die Diagnose für die Typdefinition lokal deaktiviert werden. Darüber hinaus müssen Sie die Implementierungen der Vorschauschnittstelle als Vorschau kennzeichnen. Nun kann der bestehende Typ wie zuvor verwendet werden, aber Aufrufe der neuen Schnittstellenmethoden werden diagnostisch überwacht.
System.Private.CoreLib.csproj verwendet diese Technik, um generische mathematische Features für numerische Typen wie Int32, Double und Decimal verfügbar zu machen.
Die folgenden Abbildungen zeigen, wie Sie das CA2252-Analysetool lokal deaktivieren.
Hinweis
Möglicherweise werden falsch positive Warnungen von dieser Regel angezeigt, wenn alle der folgenden Punkte zutreffen:
- Sie verwenden Visual Studio 2022, Version 17.5 oder höher, mit einer älteren Version des .NET SDK, d. h. .NET 6 oder früher.
- Sie verwenden die Analysetools aus dem .NET 6 SDK oder einer älteren Version der Analysetoolpakete, z. B. Microsoft. CodeAnalysis.FxCopAnalyzers.
In diesem Fall ist es unproblematisch, eine falsch positive Warnung zu unterdrücken. Die Fehlalarme sind auf einen Breaking Change im C#-Compiler zurückzuführen. Erwägen Sie die Verwendung von neueren Analysetools, die den Hotfix für falsch positive Warnungen enthalten. Führen Sie ein Upgrade auf Microsoft. CodeAnalysis.NetAnalyzers Version 7.0.0-preview1.22464.1 oder höher aus, oder verwenden Sie die Analysetools aus dem .NET 7 SDK.
Unterdrücken einer Warnung
Um nur eine einzelne Verletzung zu unterdrücken, fügen Sie der Quelldatei Präprozessoranweisungen hinzu, um die Regel zu deaktivieren und dann wieder zu aktivieren.
#pragma warning disable CA2252
// The code that's violating the rule is on this line.
#pragma warning restore CA2252
Um die Regel für eine Datei, einen Ordner oder ein Projekt zu deaktivieren, legen Sie den Schweregrad auf none in der Konfigurationsdatei fest.
[*.{cs,vb}]
dotnet_diagnostic.CA2252.severity = none
Um diese gesamte Kategorie von Regeln zu deaktivieren, legen Sie den Schweregrad für die Kategorie auf none in der Konfigurationsdatei fest.
[*.{cs,vb}]
dotnet_analyzer_diagnostic.category-Usage.severity = none
Weitere Informationen finden Sie unter Vorgehensweise: Unterdrücken von Codeanalyse-Warnungen.