Partilhar via


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>

Consulte também