Diagnostika SYSLIB pro generování zdroje regulárních výrazů

Následující tabulka ukazuje diagnostická ID analyzátorů zdrojové generace regulárních výrazů v .NET 7 a novějších verzích. SYSLIB1045 automaticky vás upozorní na místa, kde můžete použít generování zdroje k vygenerování implementace modulu regulárních výrazů v době kompilace. Zbývající diagnostika vás upozorní na chyby související s využitím generátoru zdrojů.

ID diagnostiky Popis
SYSLIB1040 Neplatné GeneratedRegexAttribute použití
SYSLIB1041 Na stejnou metodu se použilo více GeneratedRegexAttribute atributů, ale je povoleno pouze jedno.
SYSLIB1042 Zadaný regulární výraz je neplatný.
SYSLIB1043 Metoda GeneratedRegexAttribute musí být částečná, bez parametrů, ne generická a ne abstraktní a návratová Regex.
SYSLIB1044 Generátor regulárních výrazů nemohl vygenerovat úplnou zdrojovou implementaci pro zadaný regulární výraz kvůli internímu omezení. Další podrobnosti najdete v vysvětlení ve vygenerovaném zdroji.
SYSLIB1045 Slouží GeneratedRegexAttribute k vygenerování implementace regulárního výrazu v době kompilace.

Další informace o generování zdroje pro regulární výrazy naleznete v tématu generátory zdrojů regulárních výrazů .NET.

Potlačení upozornění

Pokud je to možné, doporučujeme použít jedno z alternativních řešení. Pokud ale kód nemůžete změnit, můžete upozornění potlačit direktivou #pragma<NoWarn> nebo nastavením projektu. Pokud se diagnostika generátoru SYSLIB1XXX zdroje nezobrazuje jako chyba, můžete potlačit upozornění v kódu nebo v souboru projektu.

Potlačení upozornění v kódu:

// Disable the warning.
#pragma warning disable SYSLIB1006

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

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

Potlačení upozornění v souboru projektu:

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

Viz také