Partilhar via


SYSLIB1034: JsonSourceGenerator encontrou uma anotação [JsonStringEnumConverter]

O não genérico JsonStringEnumConverter requer código dinâmico e não pode ser usado com a geração de código-fonte.

Soluções

Use JsonStringEnumConverter<TEnum> em vez disso, o que não requer geração de código em tempo de execuçã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>