Bagikan melalui


SYSLIB1034: JsonSourceGenerator mengalami anotasi [JsonStringEnumConverter]

Non-generik JsonStringEnumConverter memerlukan kode dinamis dan tidak dapat digunakan dengan pembuatan sumber.

Penyelesaian masalah

Gunakan JsonStringEnumConverter<TEnum> sebagai gantinya, yang tidak memerlukan pembuatan kode run-time.

Menutupi peringatan

Sebaiknya Anda menggunakan salah satu solusi jika memungkinkan. Namun, jika Anda tidak dapat mengubah kode, Anda dapat menyembunyikan peringatan melalui petunjuk #pragma atau pengaturan proyek <NoWarn>. Jika diagnostik generator sumber SYSLIB1XXX tidak muncul sebagai kesalahan, Anda dapat menyembunyikan peringatan dalam kode atau dalam file proyek Anda.

Untuk menutupi peringatan dalam kode:

// Disable the warning.
#pragma warning disable SYSLIB1006

// Code that generates compiler diagnostic.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB1006

Untuk menutupi peringatan dalam file proyek:

<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>