SYSLIB1034: JsonSourceGenerator encountered a [JsonStringEnumConverter] annotation

非ジェネリック JsonStringEnumConverter には動的コードが必要であり、ソース生成では使用できません。

対処方法

代わりに、ランタイム コードの生成を必要としない JsonStringEnumConverter<TEnum> を使用します。

警告を表示しない

可能な場合は、回避策の 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>