Sdílet prostřednictvím


SYSLIB0049: JsonSerializerOptions.AddContext je zastaralý

Metoda JsonSerializerOptions.AddContext<TContext>() je zastaralá počínaje rozhraním .NET 8. Volání v kódu generuje upozornění SYSLIB0049 v době kompilace.

Metoda JsonSerializerOptions.AddContext<TContext>() byla zavedena v .NET 6 jako prostředek pro přidružení JsonSerializerOptions instancí k zadanému JsonSerializerContext typu. Tato metoda byla do značné míry nahrazena v .NET 7 zavedením přizpůsobení kontraktu TypeInfoResolver a vlastnosti.

Alternativní řešení

Místo toho použijte jednu z následujících vlastností:

  • TypeInfoResolver – Tato vlastnost umožňuje přidat jeden nebo více překladačů najednou.
  • TypeInfoResolverChain – Tato vlastnost umožňuje předem nebo připojit překladače ve více lokalitách volání. Umožňuje také introspekci řetězu nebo odebrání součástí.

Další informace naleznete v tématu Kombinování zdrojových generátorů.

Potlačení upozornění

Pokud musíte použít zastaralá rozhraní API, můžete potlačit upozornění v kódu nebo v souboru projektu.

Chcete-li potlačit pouze jedno porušení, přidejte do zdrojového souboru direktivy preprocesoru, které chcete zakázat a znovu povolit upozornění.

// Disable the warning.
#pragma warning disable SYSLIB0049

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

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

Pokud chcete potlačit všechna SYSLIB0049 upozornění v projektu, přidejte <NoWarn> do souboru projektu vlastnost.

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

Další informace naleznete v tématu Potlačení upozornění.