Поделиться через


SYSLIB0049: JsonSerializerOptions.AddContext устарел

Этот JsonSerializerOptions.AddContext<TContext>() метод устарел, начиная с .NET 8. Вызов в коде создает предупреждение SYSLIB0049 во время компиляции.

Метод JsonSerializerOptions.AddContext<TContext>() был представлен в .NET 6 в качестве средства для связывания JsonSerializerOptions экземпляров с указанным JsonSerializerContext типом. Этот метод был в значительной степени заменен в .NET 7 с введением настройки контракта и TypeInfoResolver свойства.

Обходное решение

Вместо этого используйте одно из следующих свойств:

  • TypeInfoResolver — Это свойство позволяет добавлять один или несколько сопоставителей одновременно.
  • TypeInfoResolverChain — Это свойство позволяет заранее присвоить или добавить сопоставители на нескольких сайтах вызовов. Кроме того, он позволяет интроспектирует цепочку или удаляет компоненты из него.

Дополнительные сведения см. в разделе "Объединение генераторов источников".

Отключение предупреждений

Если необходимо использовать устаревшие API, вы можете отключить предупреждение в коде или в файле проекта.

Чтобы отключить только одно нарушение, добавьте директивы препроцессора в исходный файл, чтобы отключить и повторно включить предупреждение.

// Disable the warning.
#pragma warning disable SYSLIB0049

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

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

Чтобы отключить все SYSLIB0049 предупреждения в проекте, добавьте <NoWarn> свойство в файл проекта.

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

Дополнительные сведения см. в разделе Отключение предупреждений.