Я не могу комментировать эту реализацию, но в protobuf-net потоковая передача полностью возможна.Если все объекты, которые вы хотите передать, являются дочерними элементами первого уровня корневого объекта, то вы можете просто выполнить итерацию по внешней последовательности;используя Serializer.DeserializeItems<T>
, если они все одного типа, или Serializer.NonGeneric.TryDeaerializeWithLengthPrefix
, если задействованы различные типы объектов.
Если элемент, который вы хотите обработать как поток, находится в middle из дерева можно указать альтернативную модель получения;просто реализовав IEnumerable и Add () в поддельной коллекции, он может передавать данные через любой API, который вы хотите (на основе событий, например - SAX).
Следует также отметить, что вы можете сериализовать потоковые данныеточно так же.Не обязательно иметь полную объектную модель в любой момент.
Если вы хотите более полный пример, дайте мне знать.