Start Debugging
2023-09-06 Обновлено 2023-11-05 csharpdotnetdotnet-8 Edit on GitHub

.NET 8 Memory<byte> сериализуется как base64

Начиная с .NET 8, и Memory<byte>, и ReadOnlyMemory<byte> сериализуются как строки Base64, тогда как другие типы вроде Memory<int> остаются JSON-массивами.

Начиная с .NET 8 и Memory<byte>, и ReadOnlyMemory<byte> сериализуются как строки Base64. Рассмотрим небольшой пример:

var bar = new byte[] { 28, 70, 0 };

JsonSerializer.Serialize<Memory<byte>>(bar);
JsonSerializer.Serialize<ReadOnlyMemory<byte>>(bar);
// Output: "HEYA"

При этом Memory<int> и подобные типы продолжают сериализоваться как JSON-массивы.

JsonSerializer.Serialize<Memory<int>>(new int[] { 28, 70, 0 });
// Output: [28,70,0]

Comments

Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.

< Назад