Diagnóstico SYSLIB para geração de fonte 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. SYSLIB1045
Alerta-o automaticamente para locais onde pode utilizar a geração de origem para gerar a implementação do Mecanismo de Expressão Regular em tempo de compilação. Os diagnósticos restantes alertam sobre erros relacionados ao uso do gerador de origem.
ID de diagnóstico | Description |
---|---|
SYSLIB1040 |
Utilização inválida GeneratedRegexAttribute . |
SYSLIB1041 |
Vários GeneratedRegexAttribute atributos foram aplicados ao mesmo método, mas apenas um é permitido. |
SYSLIB1042 |
A expressão regular especificada é inválida. |
SYSLIB1043 |
Um GeneratedRegexAttribute método deve ser parcial, sem parâmetros, não genérico e não abstrato, e retornar Regex. |
SYSLIB1044 |
O gerador de regex não pôde gerar uma implementação de origem completa para a expressão regular especificada devido a uma limitação interna. Veja a explicação na fonte gerada para obter mais detalhes. |
SYSLIB1045 |
Use GeneratedRegexAttribute para gerar a implementação de expressão regular em tempo de compilação. |
Para obter mais informações sobre a geração de fontes para expressões regulares, consulte Geradores de fonte de expressão regular do .NET.
Suprimir avisos
É recomendável usar uma das soluções alternativas sempre que possível. No entanto, se você não pode alterar seu código, você pode suprimir o aviso por meio de uma #pragma
diretiva ou uma <NoWarn>
configuração de projeto. Se o diagnóstico do SYSLIB1XXX
gerador de código-fonte não aparecer como um erro, você poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir os avisos no código:
// 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:
<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>