Compartilhar via


SYSLIB1039: JsonSourceGenerator encontrou uma anotação JsonDerivedTypeAttribute com JsonSourceGenerationMode.Serialization habilitado

As anotações JsonDerivedTypeAttribute têm suporte para a geração de origem, mas não para contextos que são anotados com JsonSourceGenerationMode.Serialization. Ou seja, o atributo funciona com o gerador de origem de metadados, mas não em métodos de caminho rápido.

Soluções Alternativas

Remova o atributo ou remova a anotação JsonSourceGenerationMode.Serialization do seu contexto de serialização.

Suprimir avisos

Recomenda-se usar uma das soluções alternativas quando possível. No entanto, se não for possível alterar o código, suprima o aviso por meio de uma diretiva #pragma ou de uma configuração de projeto <NoWarn>. Se o diagnóstico do gerador de origem SYSLIB1XXX não aparecer como um erro, será possível suprimir o aviso no código ou no arquivo de projeto.

Para suprimir os avisos no código, faça o seguinte:

// 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, faça o seguinte:

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