SYSLIB0049 : JsonSerializerOptions.AddContext est obsolète

La méthode JsonSerializerOptions.AddContext<TContext>() est obsolète, depuis .NET 8. Son utilisation dans le code génère un avertissement SYSLIB0049 à la compilation.

La méthode JsonSerializerOptions.AddContext<TContext>() a été introduite dans .NET 6 comme un moyen d’associer des instances JsonSerializerOptions à un type JsonSerializerContext spécifié. Cette méthode a été largement remplacée dans .NET 7 avec l’introduction de la personnalisation du contrat et de la propriété TypeInfoResolver.

Solution de contournement

Utilisez l’une des propriétés suivantes à la place :

  • TypeInfoResolver : cette propriété vous permet d’ajouter un ou plusieurs résolveurs en même temps.
  • TypeInfoResolverChain : cette propriété vous permet d’ajouter ou d’annexer des résolveurs sur plusieurs sites d’appel. Elle vous permet également d’introspecter la chaîne ou d’en supprimer des composants.

Pour plus d’informations, consultez Combiner des générateurs de source.

Supprimer un avertissement

Si vous devez utiliser les API obsolètes, vous pouvez supprimer l’avertissement dans le code ou dans votre fichier projet.

Pour supprimer une seule violation, ajoutez des directives de préprocesseur à votre fichier source pour désactiver, puis réactiver l’avertissement.

// Disable the warning.
#pragma warning disable SYSLIB0049

// Code that uses obsolete API.
// ...

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

Pour supprimer tous les avertissements SYSLIB0049 dans votre projet, ajoutez une propriété <NoWarn> à votre fichier projet.

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
   ...
   <NoWarn>$(NoWarn);SYSLIB0049</NoWarn>
  </PropertyGroup>
</Project>

Pour plus d’informations, consultez Supprimer des avertissements.