SYSLIB1019: 型のフィールドが見つかりませんでした
ログ メソッドの定義に型 ILogger のパラメーターが明示的に含まれていない場合、そのログ メソッドを含む型の ILogger フィールドは 1 つだけある必要があります。 ILogger は、ログ メッセージのターゲットとして使用されます。
回避策
ログ メソッドを含む型に ILogger 型のフィールドが含まれているか、ログ メソッドのシグネチャに ILogger 型のパラメーターが含まれていることを確認します。
Note
このエラーが発生したが、クラスが ILogger を取る プライマリ コンストラクターを使っている場合は、以下のようにILogger フィールドを追加することでエラーを解決できます。
public partial class Foo(ILogger<Foo> logger) {
// Workaround for https://github.com/dotnet/runtime/issues/91121.
private readonly ILogger _logger = logger;
}
警告を表示しない
可能な場合は、回避策の 1 つを使用することをお勧めします。 ただし、コードを変更できない場合、#pragma ディレクティブか <NoWarn> プロジェクト設定で警告を非表示にできます。 SYSLIB1XXX ソース ジェネレーター診断がエラーとして表示されない場合は、コードまたはプロジェクト ファイルで警告を非表示にすることができます。
コードで警告を抑制するには:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
プロジェクト ファイルで警告を抑制するには:
<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>
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET