Diagnósticos SYSLIB para la generación de orígenes de regex
En la siguiente tabla se muestran los identificadores de diagnóstico de los analizadores de generación de orígenes de regex en .NET 7 y versiones posteriores. SYSLIB1045
le manda avisos automáticos con los lugares en los que puede usar la generación de orígenes para generar la implementación del motor de expresiones regulares en tiempo de compilación. El resto de diagnósticos le avisan de errores relacionados con el uso del generador de orígenes.
Id. de diagnóstico | Descripción |
---|---|
SYSLIB1040 |
Uso de GeneratedRegexAttribute no válido. |
SYSLIB1041 |
Varios atributos de GeneratedRegexAttribute se han aplicado al mismo método, pero solo se permite uno. |
SYSLIB1042 |
La expresión regular especificada no es válida. |
SYSLIB1043 |
Un método GeneratedRegexAttribute debe ser parcial, sin parámetros, no genérico y no abstracto, y devolver Regex. |
SYSLIB1044 |
El generador de regex no pudo generar una implementación de orígenes completa para la expresión regular especificada, debido a una limitación interna. Consulte la explicación en el origen generado para obtener más detalles. |
SYSLIB1045 |
Use GeneratedRegexAttribute para generar la implementación de expresiones regulares en tiempo de compilación. |
Para más información sobre la generación de orígenes para expresiones regulares, consulte Generadores de orígenes de expresiones regulares de .NET.
Suprimir advertencias
Se recomienda usar una de las soluciones alternativas cuando sea posible. Pero, si no puede cambiar el código, puede suprimir la advertencia por medio de una directiva #pragma
o la opción de configuración del proyecto <NoWarn>
. Si el diagnóstico del generador de origen SYSLIB1XXX
no se ve como un error, puede suprimir la advertencia en el código o en el archivo del proyecto.
Para suprimir las advertencias en el código:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Para suprimir las advertencias en un archivo de proyecto:
<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>