Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
SYSLIB1019: Nepovedlo se najít pole typu
Pokud definice metody protokolování explicitně neobsahuje parametr typu ILogger, pak typ obsahující metodu protokolování musí mít jeden a pouze jedno pole typu ILogger. Použije ILogger se jako cíl pro zprávy protokolu.
Alternativní řešení
Ujistěte se, že typ obsahující metodu protokolování obsahuje pole typu ILogger nebo do podpisu metody protokolování uveďte parametr typu ILogger .
Poznámka:
Pokud se zobrazí tato chyba, ale vaše třída používá primární konstruktor, který přebírá ILogger, můžete tuto chybu vyřešit přidáním ILogger pole následujícím způsobem:
public partial class Foo(ILogger<Foo> logger) {
// Workaround for https://github.com/dotnet/runtime/issues/91121.
private readonly ILogger _logger = logger;
}
Potlačení upozornění
Pokud je to možné, doporučujeme použít jedno z alternativních řešení. Pokud ale kód nemůžete změnit, můžete upozornění potlačit direktivou #pragma<NoWarn> nebo nastavením projektu. Pokud se diagnostika generátoru SYSLIB1XXX zdroje nezobrazuje jako chyba, můžete potlačit upozornění v kódu nebo v souboru projektu.
Potlačení upozornění v kódu:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Potlačení upozornění v souboru projektu:
<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>