SYSLIB1039: JsonSourceGenerator ha rilevato un'annotazione JsonDerivedTypeAttribute
con JsonSourceGenerationMode.Serialization
abilitato
Le annotazioni JsonDerivedTypeAttribute sono supportate per la generazione di origine, ma non per i contesti annotati con JsonSourceGenerationMode.Serialization. Ovvero, l'attributo funziona con il generatore di origine metadati, ma non nei metodi fast-path.
Soluzioni alternative
Rimuovere l'attributo o rimuovere l'annotazione JsonSourceGenerationMode.Serialization dal contesto di serializzazione.
Non visualizzare gli avvisi
È consigliabile usare una delle soluzioni alternative quando possibile. Tuttavia, se non è possibile modificare il codice, è possibile eliminare gli avvisi tramite una direttiva #pragma
o un'impostazione di progetto <NoWarn>
. Se la diagnostica del generatore di origine SYSLIB1XXX
non viene visualizzata come errore, è possibile evitare di visualizzare l'avviso nel codice o nel file di progetto.
Per eliminare gli avvisi nel codice:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Per eliminare gli avvisi in un file di progetto:
<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>