У меня есть бэкэнд java, который отправляет сообщения с помощью protobuf, он отправляет объекты с разделителями сообщений в один массив байтов массива по тибу. Я могу десериализовать их отлично, используя функцию parseDelimitedFrom (yourStreamHere) в java, но на стороне C# у нас есть некоторые проблемы, и я не мог найти примеров, но я могу просто пропустить что-то очевидное здесь.Deserializing Список сообщений с protobuf-net
Мы делаем что-то в C#, как этот
using (MemoryStream mem = new MemoryStream())
{
mem.Write(byteArray, 0, byteArray.Length);
mem.Position = 0;
return Serializer.Deserialize<List<OrderState>>(mem);
}
Примечание: Я видел старше post на это, но это выглядело довольно устаревшей, и я думаю, что изменения произошли в Protobuf-сеть с тех пор, но правильно ли я м ошибаетесь
Кстати ваше использование MemoryStream неэффективно. Вы можете просто обернуть свой байтовый массив в MemoryStream с помощью 'new MemoryStream (byteArray)' вместо создания MemoryStream с новым внутренним байтовым массивом и скопировать в него массив байтов. – dtb
Я не думаю, что разница в том, что большая часть сделки, потому что MemoryStream собирается делать что-то вроде этого внутренне в любом случае, это всего лишь образец кода, есть ли у вас какое-либо понимание вопроса? – jtruelove
Я не знаю, с верхней части моей головы, которые образуют parsedelimited использует. Сейчас я не на компьютере, но должен уметь смотреть позже. –