Condividi tramite


SYSLIB0049: JsonSerializerOptions.AddContext è obsoleto

Il metodo JsonSerializerOptions.AddContext<TContext>() è obsoleto, a partire da .NET 8. La chiamata nel codice genera un avviso SYSLIB0049 in fase di compilazione.

Il metodo JsonSerializerOptions.AddContext<TContext>() è stato introdotto in .NET 6 come mezzo per associare istanze JsonSerializerOptions a un tipo JsonSerializerContext specificato. Questo metodo è stato ampiamente sostituito in .NET 7 con l'introduzione della personalizzazione del contratto e della proprietà TypeInfoResolver.

Soluzione alternativa

Usare invece una delle proprietà seguenti:

  • TypeInfoResolver: questa proprietà consente di aggiungere uno o più resolver contemporaneamente.
  • TypeInfoResolverChain: questa proprietà consente di anteporre o accodare resolver in più siti di chiamata. Consente inoltre di analizzare la catena o rimuovere componenti.

Per altre informazioni, vedere Combinare generatori di origini.

Eliminare un avviso

Se è necessario usare le API obsolete, è possibile eliminare l'avviso nel codice o nel file di progetto.

Per eliminare solo una singola violazione, aggiungere direttive del preprocessore al file di origine per disabilitare e quindi riabilitare l'avviso.

// Disable the warning.
#pragma warning disable SYSLIB0049

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

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

Per eliminare tutti gli avvisi SYSLIB0049 nel progetto, aggiungere una proprietà <NoWarn> al file di progetto.

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

Per altre informazioni, vedere Non visualizzare gli avvisi.