小编DrG*_*one的帖子

如何使用 PrefixStyle 和 ProtoBuf-net 获取长度数?

在下面的示例中,如何使用 PrefixStyle 和 ProtoBuf-net 获取长度数?

PrefixStyle.Base128 和 PrefixStyle.Fixed32 有什么区别?

谢谢!

            PerfTest clone;
            using (MemoryStream ms = new MemoryStream())
            {
                Serializer.SerializeWithLengthPrefix(ms, obj,PrefixStyle.Base128);
                byte[] raw = ms.ToArray();
                ms.Position = 0;
                clone = Serializer.DeserializeWithLengthPrefix<PerfTest>(ms,PrefixStyle.Base128);

            }
Run Code Online (Sandbox Code Playgroud)

编辑:使用字节数组下方的代码长度为 22。为什么 TryReadLengthPrefix 返回 21?肯定是应该返回22?

           PerfTest clone;
            using (MemoryStream ms = new MemoryStream())
            {
                Serializer.SerializeWithLengthPrefix(ms, obj,PrefixStyle.Base128);
                byte[] raw = ms.ToArray();
                ms.Position = 0;

                int bArrayLen = ms.ToArray().Length; //returns 22

                int len;// set to 21. Why not 22?
                Serializer.TryReadLengthPrefix(ms, PrefixStyle.Base128,out len);

                clone = Serializer.DeserializeWithLengthPrefix<PerfTest>(ms,PrefixStyle.Fixed32);

            }
Run Code Online (Sandbox Code Playgroud)

c# protocol-buffers protobuf-net

4
推荐指数
1
解决办法
2773
查看次数

标签 统计

c# ×1

protobuf-net ×1

protocol-buffers ×1