Обложка канала

.NET Разработчик

Опытный разработчик не так давно зашёл в .Net и поставил цель получить сертификат Microsoft. Свой ежедневный прогресс он описывает на канале .Net Разработчик. Заметки об изученном материале, советы по повышению производительности и поддержке мотивации, ин

.NET Разработчик

4 года назад
Открыть в
День 1206. #ЗаметкиНаПолях Упрощаем Работу с Данными Если вы работаете с двоичными данными и используете byte[], можно упростить себе жизнь, используя класс BinaryData, который представляет собой облегчённую абстракцию для работы с двоичными данными, поддерживающую преобразование между строкой, потоком, JSON и байтами. Замечание: Чтобы работать с классом BinaryData, нужно установить NuGet пакет System.Memory.Data. Допустим, у нас есть следующий объект:
record Person(string FirstName, string LastName);
var person = new Person("John", "Smith");

Преобразуем в JSON-строку:
var personData = new BinaryData(person);
Console.WriteLine(personData.ToString());
// Вывод:
// {"FirstName":"John","LastName":"Smith"}

Преобразуем JSON в объект:
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);
Console.WriteLine(streamData.ToString());
// Вывод:
// Hello World!

Источник: twitter.com/Marusyk…30535680