Dela via


SYSLIB0049: JsonSerializerOptions.AddContext är föråldrad

Metoden JsonSerializerOptions.AddContext<TContext>() är föråldrad med början i .NET 8. Om du anropar den i kod genereras en varning SYSLIB0049 vid kompileringstillfället.

Metoden JsonSerializerOptions.AddContext<TContext>() introducerades i .NET 6 som ett sätt att associera JsonSerializerOptions instanser med en angiven JsonSerializerContext typ. Den här metoden ersattes till stor del i .NET 7 med införandet av kontraktsanpassning och TypeInfoResolver egenskapen .

Lösning

Använd någon av följande egenskaper i stället:

  • TypeInfoResolver – Med den här egenskapen kan du lägga till en eller flera matchare samtidigt.
  • TypeInfoResolverChain – Med den här egenskapen kan du förbereda eller lägga till matchare på flera samtalswebbplatser. Du kan också introspekta kedjan eller ta bort komponenter från den.

Mer information finns i Kombinera källgeneratorer.

Ignorera en varning

Om du måste använda föråldrade API:er kan du ignorera varningen i koden eller i projektfilen.

Om du bara vill förhindra en enda överträdelse lägger du till förprocessordirektiv i källfilen för att inaktivera och återaktiverar sedan varningen.

// Disable the warning.
#pragma warning disable SYSLIB0049

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

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

Om du vill ignorera alla SYSLIB0049 varningar i projektet lägger du till en <NoWarn> egenskap i projektfilen.

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

Mer information finns i Utelämna varningar.