Как десериализовать двоичные данные byte[] из IDistributedCache в ASP.NET Core?C#

Место общения программистов C#
Anonymous
Как десериализовать двоичные данные byte[] из IDistributedCache в ASP.NET Core?

Сообщение Anonymous »

Вот вопрос, основанный на вашем сценарии, который вы можете задать на StackOverflow:

Заголовок:
Как Могу ли я правильно десериализовать данные byte[] из IDistributedCache, которые приведут к двоичному формату?

Body:< /strong>
Я получаю byte[] из IDistributedCache в своем приложении ASP.NET Core, которое было сериализовано с помощью системы управления сеансами (

Код: Выделить всё

ISession.CommitAsync). Когда я пытаюсь десериализовать byte[]
, я получаю следующую ошибку:

Код: Выделить всё

{'0x02' is an invalid start of a value. Path: $ | LineNumber: 0 | BytePositionInLine: 0.}
Я попробовал преобразовать байт[] обратно в строку, используя:

Код: Выделить всё

var jsonString = System.Text.Encoding.UTF8.GetString(byteArray);
Но это дает мне странные и нечитаемые строки, предполагающие, что данные находятся в двоичном формате.
Вот что я знаю:
  • Данные были сериализованы с помощью ISession.CommitAsync.
  • Я пытаюсь десериализовать их в словарь.
  • Я не знаю точного формата сериализации.
Я' Я пробовал использовать UTF8.GetString и BinaryFormatter для десериализации, но ни один из них не работает должным образом.
У меня есть несколько вопросов:[/b]< /p>
  • Как правильно десериализовать byte[], хранящийся в IDistributedCache?
  • Могло бы данные сжимаются или сериализуются в определенном формате сеансами ASP.NET Core, и как мне с этим справиться?


Подробнее здесь: https://stackoverflow.com/questions/790 ... p-net-core

Вернуться в «C#»