SYSLIB-diagnostik för regex-källgenerering
I följande tabell visas diagnostik-ID:n för regex-källgenereringsanalyser i .NET 7 och senare versioner. SYSLIB1045
aviserar dig automatiskt till platser där du kan använda källgenerering för att generera implementeringen av den reguljära uttrycksmotorn vid kompileringstillfället. Återstående diagnostik aviserar dig om fel som rör användning av källgeneratorn.
Diagnostik-ID | beskrivning |
---|---|
SYSLIB1040 |
Ogiltig GeneratedRegexAttribute användning. |
SYSLIB1041 |
Flera GeneratedRegexAttribute attribut tillämpades på samma metod, men endast en tillåts. |
SYSLIB1042 |
Det angivna reguljära uttrycket är ogiltigt. |
SYSLIB1043 |
En GeneratedRegexAttribute metod måste vara partiell, parameterlös, icke-generisk och icke-abstrakt och returnera Regex. |
SYSLIB1044 |
Regex-generatorn kunde inte generera en fullständig källimplementering för det angivna reguljära uttrycket på grund av en intern begränsning. Mer information finns i förklaringen i den genererade källan. |
SYSLIB1045 |
Använd GeneratedRegexAttribute för att generera implementeringen av reguljära uttryck vid kompileringstillfället. |
Mer information om källgenerering för reguljära uttryck finns i Källgeneratorer för reguljära .NET-uttryck.
Ignorera varningar
Vi rekommenderar att du använder någon av lösningarna när det är möjligt. Men om du inte kan ändra koden kan du ignorera varningen via ett #pragma
direktiv eller en <NoWarn>
projektinställning. Om källgeneratordiagnostiken SYSLIB1XXX
inte visas som ett fel kan du utelämna varningen i koden eller i projektfilen.
Så här utelämnar du varningarna i koden:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Så här utelämnar du varningarna i en projektfil:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.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>