Delen via


SYSLIB0049: JsonSerializerOptions.AddContext is verouderd

De JsonSerializerOptions.AddContext<TContext>() methode is verouderd, te beginnen in .NET 8. Als u deze aanroept in code, wordt er een waarschuwing SYSLIB0049 gegenereerd tijdens het compileren.

De JsonSerializerOptions.AddContext<TContext>() methode is in .NET 6 geïntroduceerd als een manier om exemplaren te koppelen JsonSerializerOptions aan een opgegeven JsonSerializerContext type. Deze methode werd grotendeels vervangen in .NET 7 met de introductie van contractaanpassing en de TypeInfoResolver eigenschap.

Tijdelijke oplossing

Gebruik in plaats daarvan een van de volgende eigenschappen:

  • TypeInfoResolver - Met deze eigenschap kunt u één of meerdere resolvers tegelijk toevoegen.
  • TypeInfoResolverChain - Met deze eigenschap kunt u op meerdere oproepsites vooraf gaan of toevoegen aan resolvers. Hiermee kunt u ook de keten introspect of onderdelen ervan verwijderen.

Zie Brongeneratoren combineren voor meer informatie.

Een waarschuwing onderdrukken

Als u de verouderde API's moet gebruiken, kunt u de waarschuwing in code of in het projectbestand onderdrukken.

Als u slechts één schending wilt onderdrukken, voegt u preprocessorrichtlijnen toe aan uw bronbestand om de waarschuwing uit te schakelen en vervolgens opnieuw in te schakelen.

// Disable the warning.
#pragma warning disable SYSLIB0049

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

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

Als u alle SYSLIB0049 waarschuwingen in uw project wilt onderdrukken, voegt u een <NoWarn> eigenschap toe aan het projectbestand.

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

Zie Waarschuwingen onderdrukken voor meer informatie.