Diagnóstico SYSLIB para geração de origem regex
A tabela a seguir mostra as IDs de diagnóstico para analisadores de geração de origem regex no .NET 7 e versões posteriores. O SYSLIB1045
alerta automaticamente para locais que você pode usar a geração de origem para gerar a implementação do mecanismo de expressão regular no tempo de compilação. O diagnóstico restante alerta você sobre erros relacionados ao uso do gerador de origem.
ID do diagnóstico | Descrição |
---|---|
SYSLIB1040 |
Uso de GeneratedRegexAttribute inválido. |
SYSLIB1041 |
Vários atributos GeneratedRegexAttribute foram aplicados ao mesmo método, mas apenas um é permitido. |
SYSLIB1042 |
A expressão regular especificada não é válida. |
SYSLIB1043 |
Um método GeneratedRegexAttribute deve ser parcial, sem parâmetros, não genérico, não abstrato e retornar Regex. |
SYSLIB1044 |
O gerador regex não pôde gerar uma implementação de origem completa para a expressão regular especificada devido a uma limitação interna. Confira a explicação na origem gerada para obter mais detalhes. |
SYSLIB1045 |
Use GeneratedRegexAttribute para gerar a implementação de expressão regular no tempo de compilação. |
Para obter mais informações sobre a geração de origem para expressões regulares, confira Geradores de origem de expressões regulares do .NET.
Suprimir avisos
Recomenda-se usar uma das soluções alternativas quando possível. No entanto, se não for possível alterar o código, suprima o aviso por meio de uma diretiva #pragma
ou de uma configuração de projeto <NoWarn>
. Se o diagnóstico do gerador de origem SYSLIB1XXX
não aparecer como um erro, será possível suprimir o aviso no código ou no arquivo de projeto.
Para suprimir os avisos no código, faça o seguinte:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Para suprimir os avisos em um arquivo de projeto, faça o seguinte:
<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>