我正在流中寫入位置爲pos
的整數數組。我基本上有一個int[]
和我使用Serializer.SerializeWithLengthPrefix(stream, array, typeof(int[]), PrefixStyle.Fixed32, -1);
。這附加到具有正確前綴長度的數組流中。protobuf-net反序列化序列化數組中的第k個元素
我想反序列化流中隨機索引的元素。一種方法可能是通過pos + (index*fixedLength)
尋找流,但我注意到這個數組中的整數是使用DataFormat.Default
編寫的,它產生了一個變長編碼。
有沒有辦法改變它?
我可以看到這樣做的一種方式是封裝數組作爲屬性在一些包裝類。然後我可以在屬性中指定DataFormat.FixedSize
。這是這種情況下的最佳做法嗎?
另外fixedLength
是什麼? sizeof(int)
?
感謝, 尤利安
是的,這是肯定的如何表達的問題:)。但是,我只是試圖簡化實際問題。我會將其標記爲答案併發布另一個更詳細的問題。謝謝你,尤利安 – Iulian 2014-09-20 10:39:46
@lulian讓我知道當你添加更完整的問題 – 2014-09-20 11:53:56
謝謝Marc - 我發佈了這個問題[鏈接](http://stackoverflow.com/questions/25951775/protobuf-net-lazy-streaming-反序列化-的場)。 – Iulian 2014-09-20 18:04:29