Упрощаем Работу с Данными
Если вы работаете с двоичными данными и используете
byte[], можно упростить себе жизнь, используя класс BinaryData, который представляет собой облегчённую абстракцию для работы с двоичными данными, поддерживающую преобразование между строкой, потоком, JSON и байтами.Замечание: Чтобы работать с классом
BinaryData, нужно установить NuGet пакет System.Memory.Data.Допустим, у нас есть следующий объект:
record Person(string FirstName, string LastName);Преобразуем в JSON-строку:
var person = new Person("John", "Smith");
var personData = new BinaryData(person);Преобразуем JSON в объект:
Console.WriteLine(personData.ToString());
// Вывод:
// {"FirstName":"John","LastName":"Smith"}
var person2 = personData.ToObjectFromJson<Person>();Теперь рассмотрим работу со строками и двоичными данными:
Console.WriteLine(person2.ToString());
// Вывод (стандартный ToString для типа record):
// Person { FirstName = John, LastName = Smith }
var stringData = new BinaryData("Hello World!");
Преобразуем строку в массив байт:byte[] bytes = stringData.ToArray();Преобразуем массив байт в поток:
var bytesData = new BinaryData(bytes);
Stream stream = bytesData.ToStream();Читаем из потока:
var streamData = BinaryData.FromStream(stream);Источник: https://twitter.com/MarusykRoman/status/1521256457630535680
Console.WriteLine(streamData.ToString());
// Вывод:
// Hello World!