Protobuf десериализация - ошибка
От: dsalodki Беларусь http://dsalodki.wix.com/resume
Дата: 06.11.21 01:27
Оценка:
byte[] bin = r["BIN"] as byte[];
using (MemoryStream m = new MemoryStream(bin))
{
        userBIN = Serializer.Deserialize<UserBIN>(m);

вот здесь при десериализации иногда возникает исключение, но если вызывать десериализацию ещё раз — то работает, не понимаю что за магия.
ещё заметил что исключение на 8000 байт, хотя использую varbinary(max) и должно быть больше в этот момент
Re: Protobuf десериализация - ошибка
От: Sinclair Россия https://github.com/evilguest/
Дата: 06.11.21 04:39
Оценка: +2
Здравствуйте, dsalodki, Вы писали:

D>
D>byte[] bin = r["BIN"] as byte[];
D>using (MemoryStream m = new MemoryStream(bin))
D>{
D>        userBIN = Serializer.Deserialize<UserBIN>(m);
D>

D>вот здесь при десериализации иногда возникает исключение,
что за исключение? Стектрейс, мессадж, доп.поля в студию.
D>но если вызывать десериализацию ещё раз — то работает, не понимаю что за магия.
что значит "ещё раз"? С тем же m повторно вызываем Deserialize? С тем же bin конструируем новый MemoryStream? Или повторно выполняем тот же запрос из базы?
D>ещё заметил что исключение на 8000 байт, хотя использую varbinary(max) и должно быть больше в этот момент
Что значит "должно быть"? Запишите в лог bin.Count.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.