Freigeben über


SYSLIB-Diagnose für die Regex-Quellgenerierung

In der folgenden Tabelle sind die Diagnose-IDs für regex Source-Generation-Analyzer in .NET 7 und höher aufgeführt. SYSLIB1045 Benachrichtigt Sie automatisch an Stellen, an denen Sie die Quellgenerierung verwenden können, um die Implementierung der Regulärausdrücke-Engine bei der Kompilierung zu generieren. Die verbleibende Diagnose warnt Sie auf Fehler im Zusammenhang mit der Verwendung des Quellgenerators.

Diagnose-ID Beschreibung
SYSLIB1040 Ungültige GeneratedRegexAttribute-Verwendung
SYSLIB1041 Mehrere GeneratedRegexAttribute-Attribute wurden auf dieselbe Methode angewendet, es ist aber nur ein Attribut zulässig.
SYSLIB1042 Der angegebene reguläre Ausdruck ist ungültig.
SYSLIB1043 Eine GeneratedRegexAttribute-Methode muss partiell, parameterlos, nicht generisch und nicht abstrakt sein und Regex zurückgeben.
SYSLIB1044 Der RegEx-Generator konnte aufgrund einer internen Einschränkung keine vollständige Quellimplementierung für den angegebenen regulären Ausdruck generieren. Weitere Informationen finden Sie in der Erklärung in der generierten Quelle.
SYSLIB1045 Verwenden Sie GeneratedRegexAttribute, um die Implementierung des regulären Ausdrucks während der Kompilierung zu generieren.

Weitere Informationen zur Quellgenerierung für reguläre Ausdrücke finden Sie unter .NET Quellengeneratoren für reguläre Ausdrücke.

Unterdrücken von Warnungen

Es wird empfohlen, nach Möglichkeit eine der Problemumgehungen zu verwenden. Wenn Sie den Code jedoch nicht ändern können, können Sie die Warnung über eine #pragma Direktive oder eine <NoWarn> Projekteinstellung unterdrücken. Wenn die SYSLIB1XXX Quellgeneratordiagnose nicht als Fehler angezeigt wird, können Sie die Warnung im Code oder in der Projektdatei unterdrücken.

So unterdrücken Sie die Warnungen im Code (ersetzen Sie die Diagnose-ID nach Bedarf):

// Disable the warning.
#pragma warning disable SYSLIB1006

// Code that generates compiler diagnostic.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB1006

So unterdrücken Sie die Warnungen in einer Projektdatei (ersetzen Sie die Diagnose-IDs nach Bedarf):

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   <TargetFramework>net10.0</TargetFramework>
   <!-- NoWarn below suppresses SYSLIB1002 project-wide -->
   <NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
   <!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
   <NoWarn>$(NoWarn);SYSLIB1002</NoWarn>
   <NoWarn>$(NoWarn);SYSLIB1006</NoWarn>
   <!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
   <NoWarn>$(NoWarn);SYSLIB1002;SYSLIB1006;SYSLIB1007</NoWarn>
  </PropertyGroup>
</Project>

Siehe auch