Partager via


Diagnostics SYSLIB pour la génération de source regex

Le tableau suivant montre les ID de diagnostic pour les analyseurs de génération de source regex dans .NET 7 et versions ultérieures. SYSLIB1045 vous avertit automatiquement des emplacements où vous pouvez utiliser la génération de source pour générer l’implémentation du moteur d’expressions régulières au moment de la compilation. Les diagnostics restants vous alertent en cas d’erreurs liées à l’utilisation du générateur de source.

ID de diagnostic Description
SYSLIB1040 Utilisation non valide de GeneratedRegexAttribute.
SYSLIB1041 Plusieurs GeneratedRegexAttribute ont été appliqués à la même méthode, alors qu’un seul est autorisé.
SYSLIB1042 L’expression régulière spécifiée n’est pas valide.
SYSLIB1043 Une méthode GeneratedRegexAttribute doit être partielle, sans paramètre, non générique et non abstraite, et retourner Regex.
SYSLIB1044 Le générateur d’expressions régulières n’a pas pu générer une implémentation source complète pour l’expression régulière spécifiée en raison d’une limitation interne. Pour plus d’informations, consultez l’explication dans la source générée.
SYSLIB1045 Utilisez GeneratedRegexAttribute pour générer l’implémentation de l’expression régulière au moment de la compilation.

Pour plus d’informations sur la génération de sources pour les expressions régulières, consultez Générateurs de sources d’expressions régulières .NET.

Supprimer les avertissements

Il est recommandé d’utiliser l’une des solutions de contournement lorsque cela est possible. Toutefois, si vous ne pouvez pas modifier votre code, vous pouvez supprimer l’avertissement via une directive #pragma ou un paramètre de projet <NoWarn>. Si le diagnostic du générateur source SYSLIB1XXX ne s’affiche pas comme une erreur, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer les avertissements dans le code :

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Pour supprimer les avertissements dans un fichier projet :

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

Voir aussi