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>