Compartir a través de


SYSLIB1019: No se ha encontrado un campo de tipo ILogger

Cuando una definición de método de registro no incluye explícitamente un parámetro de tipo ILogger, el tipo que contiene el método de registro debe tener únicamente un campo de tipo ILogger. ILogger se usará como destino para los mensajes de registro.

Soluciones alternativas

Asegúrese de que el tipo que contiene el método de registro incluye un campo de tipo ILogger o incluya un parámetro de tipo ILogger en la firma del método de registro.

Nota:

Si recibe este error, pero la clase usa un constructor principal que toma un ILogger, puede resolver el error agregando un campo ILogger de la siguiente manera:

public partial class Foo(ILogger<Foo> logger) {
    // Workaround for https://github.com/dotnet/runtime/issues/91121.
    private readonly ILogger _logger = logger;
}

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>