Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
System.Text.Json теперь поддерживает сериализацию и десериализацию IAsyncEnumerable<T> экземпляров.
Предыдущее поведение
В предыдущих версиях System.Text.Json сериализовывал IAsyncEnumerable<T> экземпляры в виде пустых объектов JSON ({}). Десериализация завершилась ошибкой JsonException.
Новое поведение
Теперь методы асинхронной сериализации перечисляют все IAsyncEnumerable<T> экземпляры в графе объектов, а затем сериализуют их в виде массивов JSON. Синхронные методы сериализации не поддерживают IAsyncEnumerable<T> сериализацию и вызывают исключение NotSupportedException.
Представленная версия
.NET 6
Тип разрушающего изменения
Это изменение может повлиять на совместимость исходного кода . Если вы перенаправляетесь на .NET 6, вы не получите никаких ошибок во время компиляции, но вы можете столкнуться с различиями в поведении сериализации во время выполнения.
Причина изменения
Это изменение было введено для добавления поддержки потоковых IAsyncEnumerable<T> ответов в ASP.NET Core MVC.
Рекомендуемое действие
Проверьте, содержат ли ваши модели сериализации типы, реализующие IAsyncEnumerable<T>, и оцените, является ли эмиссия перечисления в выходных данных JSON желательной. Сериализацию можно отключить с помощью одного из следующих методов: IAsyncEnumerable<T>
- Вложите объект JsonIgnoreAttribute к свойству, содержаму объект IAsyncEnumerable<T>.
- Определите настраиваемую фабрику преобразователей, чтобы сериализовать экземпляры IAsyncEnumerable<T> как пустые объекты JSON.