SYSLIB1039: JsonSourceGenerator encontrou uma JsonDerivedTypeAttribute
anotação com JsonSourceGenerationMode.Serialization
ativado
JsonDerivedTypeAttribute As anotações são suportadas para geração de origem, mas não para contextos anotados com JsonSourceGenerationMode.Serialization. Ou seja, o atributo funciona com o gerador de fonte de metadados, mas não em métodos de caminho rápido.
Soluções
Remova o atributo ou remova a JsonSourceGenerationMode.Serialization anotação do contexto de serialização.
Suprimir avisos
É recomendável usar uma das soluções alternativas sempre que possível. No entanto, se você não pode alterar seu código, você pode suprimir o aviso por meio de uma #pragma
diretiva ou uma <NoWarn>
configuração de projeto. Se o diagnóstico do SYSLIB1XXX
gerador de código-fonte não aparecer como um erro, você poderá suprimir o aviso no código ou no arquivo de projeto.
Para suprimir os avisos no código:
// Disable the warning.
#pragma warning disable SYSLIB1006
// Code that generates compiler diagnostic.
// ...
// Re-enable the warning.
#pragma warning restore SYSLIB1006
Para suprimir os avisos em um arquivo de projeto:
<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>