SYSLIB1039: JsonSourceGenerator mengalami anotasi JsonDerivedTypeAttribute
dengan JsonSourceGenerationMode.Serialization
diaktifkan
JsonDerivedTypeAttribute anotasi didukung untuk pembuatan sumber, tetapi tidak untuk konteks yang dianotasi dengan JsonSourceGenerationMode.Serialization. Artinya, atribut bekerja dengan generator sumber metadata, tetapi tidak dalam metode jalur cepat.
Penyelesaian masalah
Hapus atribut, atau hapus JsonSourceGenerationMode.Serialization anotasi dari konteks serialisasi Anda.
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>