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>

Confira também