Partage via


SYSLIB1034 : JsonSourceGenerator a rencontré une annotation [JsonStringEnumConverter]

Le code non générique JsonStringEnumConverter nécessite du code dynamique et ne peut pas être utilisé avec la génération source.

Solutions de contournement

Utilisez JsonStringEnumConverter<TEnum> à la place qui ne nécessite pas de génération de code au moment de l’exécution.

Supprimer les avertissements

Il est recommandé d’utiliser l’une des solutions de contournement lorsque cela est possible. Toutefois, si vous ne pouvez pas modifier votre code, vous pouvez supprimer l’avertissement via une directive #pragma ou un paramètre de projet <NoWarn>. Si le diagnostic du générateur source SYSLIB1XXX ne s’affiche pas comme une erreur, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer les avertissements dans le code :

// Disable the warning.
#pragma warning disable SYSLIB1006

// Code that generates compiler diagnostic.
// ...

// Re-enable the warning.
#pragma warning restore SYSLIB1006

Pour supprimer les avertissements dans un fichier projet :

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