Condividi tramite


Diagnostica SYSLIB per la generazione dell'origine regex

La tabella seguente illustra gli ID di diagnostica per gli analizzatori di generazione di origine regex in .NET 7 e versioni successive. SYSLIB1045 comunica automaticamente le posizioni in cui è possibile usare la generazione di origine per generare l'implementazione del motore delle espressioni regolari in fase di compilazione. La diagnostica rimanente comunica gli errori relativi all'utilizzo del generatore di origine.

ID di diagnostica Descrizione
SYSLIB1040 Utilizzo di GeneratedRegexAttribute non valido.
SYSLIB1041 Allo stesso metodo sono stati applicati più attributiGeneratedRegexAttribute, ma ne è consentito solo uno.
SYSLIB1042 L'espressione regolare specificata non è valida.
SYSLIB1043 Un metodo GeneratedRegexAttribute deve essere parziale, senza parametri, non generico e non astratto e deve restituire Regex.
SYSLIB1044 Il generatore regex non è riuscito a generare un'implementazione di origine completa per l'espressione regolare specificata a causa di una limitazione interna. Per altri dettagli, vedere la spiegazione nell'origine generata.
SYSLIB1045 Usare GeneratedRegexAttribute per generare l'implementazione dell'espressione regolare in fase di compilazione.

Per altre informazioni sulla generazione di origine per le espressioni regolari, vedere Generatori di origini di espressioni regolari .NET.

Non visualizzare gli avvisi

È consigliabile usare una delle soluzioni alternative quando possibile. Tuttavia, se non è possibile modificare il codice, è possibile non visualizzare gli avvisi tramite una direttiva #pragma o un'impostazione di progetto <NoWarn>. Se la diagnostica del generatore di origine SYSLIB1XXX non viene visualizzata come errore, è possibile evitare di visualizzare l'avviso nel codice o nel file di progetto.

Per evitare di visualizzare gli avvisi nel codice:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Per evitare di visualizzare gli avvisi in un file di progetto:

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

Vedi anche