Delen via


SYSLIB-diagnose voor het genereren van regex-bronnen

In de volgende tabel ziet u de diagnostische id's voor regex source generation analyzers in .NET 7 en latere versies. SYSLIB1045 waarschuwt u automatisch voor plaatsen waar u brongeneratie kunt gebruiken om tijdens het compileren de implementatie van de reguliere expressie-engine te genereren. De resterende diagnostische gegevens waarschuwen u voor fouten met betrekking tot het gebruik van de brongenerator.

Diagnostische id Beschrijving
SYSLIB1040 Ongeldig GeneratedRegexAttribute gebruik.
SYSLIB1041 Er zijn meerdere GeneratedRegexAttribute kenmerken toegepast op dezelfde methode, maar er is slechts één toegestaan.
SYSLIB1042 De opgegeven reguliere expressie is ongeldig.
SYSLIB1043 Een GeneratedRegexAttribute methode moet gedeeltelijk, parameterloos, niet-algemeen en niet-abstract zijn en retourneren Regex.
SYSLIB1044 De regex-generator kan geen volledige bron-implementatie genereren voor de opgegeven reguliere expressie vanwege een interne beperking. Zie de uitleg in de gegenereerde bron voor meer informatie.
SYSLIB1045 Gebruik GeneratedRegexAttribute dit om de implementatie van de reguliere expressie tijdens het compileren te genereren.

Zie .NET-bronbrongeneratoren voor meer informatie over het genereren van bronbronnen voor reguliere expressies.

Waarschuwingen onderdrukken

Het is raadzaam om waar mogelijk een van de tijdelijke oplossingen te gebruiken. Als u de code echter niet kunt wijzigen, kunt u de waarschuwing onderdrukken via een #pragma instructie of een <NoWarn> projectinstelling. Als de SYSLIB1XXX diagnostische brongenerator niet als fout wordt weergegeven, kunt u de waarschuwing in code of in het projectbestand onderdrukken.

De waarschuwingen in code onderdrukken:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

De waarschuwingen in een projectbestand onderdrukken:

<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>

Zie ook