草庐IT

Protobuf3

全部标签

c# - 无注释的protobuf-net序列化

我看了this回答,我处于不需要保持向后兼容性的情况,我必须有一个解决方案,而不必用protobuf-net所需的属性装饰几十个类。所以我尝试使用RuntimeTypeModel.Default.InferTagFromNameDefault=true;但我可能没有正确使用它,因为Serializer.Serialize调用仍然抛出异常要求契约(Contract)。这是我的快速测试,我做错了什么?publicenumCompanyTypes{None,Small,Big,Enterprise,Startup}publicclassBaseUser{publicstringSSN{get

Unity之C#端使用protobuf

什么是protobufprotobuf全称ProtocolBuffers,由Google推出的一种平台、语言无关的数据交互格式,目前使用最广泛的一种数据格式,尤其在网络传输过程中,有很强的安全性,而且数据量比json和xml要小很多。最主要的是protobuf支持的语言非常多,不管你是.net,java,lua,iOS,android,python,go,等等等等。都可以支持互相通信。我们之前的游戏框架都是lua的,所以protobuf用的也都是lua版本的。最近转用C#写框架了,所以需要一套.net端的protobuf,所以把踩得坑总结下来。protobuf库选择protobuf的.net实

Unity之C#端使用protobuf

什么是protobufprotobuf全称ProtocolBuffers,由Google推出的一种平台、语言无关的数据交互格式,目前使用最广泛的一种数据格式,尤其在网络传输过程中,有很强的安全性,而且数据量比json和xml要小很多。最主要的是protobuf支持的语言非常多,不管你是.net,java,lua,iOS,android,python,go,等等等等。都可以支持互相通信。我们之前的游戏框架都是lua的,所以protobuf用的也都是lua版本的。最近转用C#写框架了,所以需要一套.net端的protobuf,所以把踩得坑总结下来。protobuf库选择protobuf的.net实

c# - protobuf-net:序列化一个空列表

我们在序列化一个空列表时遇到了一些问题。这里有一些使用CF2.0的.NET代码//Generatingtheprotobuf-msgProtoBufMessagemsg=newProtoBufMessage();msg.list=newList();//SerializingandsendingthrowHTTP-POSTMemoryStreamstream=newMemoryStream();Serializer.Serialize(stream,msg);byte[]bytes=stream.ToArray();HttpWebRequestrequest=createRequest

c# - protobuf-net:序列化一个空列表

我们在序列化一个空列表时遇到了一些问题。这里有一些使用CF2.0的.NET代码//Generatingtheprotobuf-msgProtoBufMessagemsg=newProtoBufMessage();msg.list=newList();//SerializingandsendingthrowHTTP-POSTMemoryStreamstream=newMemoryStream();Serializer.Serialize(stream,msg);byte[]bytes=stream.ToArray();HttpWebRequestrequest=createRequest

c# - Protobuf-net:试图读取流的末尾

我们的系统在使用protobuf-net序列化一条消息时,有时但不是每次都会引发下面暴露的错误。错误的原因是什么?我该如何缓解?请注意,我们已经在使用DeserializeWithLengthPrefix。更新:相关代码在这里privateconstPrefixStylePrefixStyleInPlace=PrefixStyle.Fixed32;publicstaticbyte[]SerializeObjectToByteArray(TSerializablesource)whereTSerializable:class{byte[]result;using(varmemoryStr

c# - Protobuf-net:试图读取流的末尾

我们的系统在使用protobuf-net序列化一条消息时,有时但不是每次都会引发下面暴露的错误。错误的原因是什么?我该如何缓解?请注意,我们已经在使用DeserializeWithLengthPrefix。更新:相关代码在这里privateconstPrefixStylePrefixStyleInPlace=PrefixStyle.Fixed32;publicstaticbyte[]SerializeObjectToByteArray(TSerializablesource)whereTSerializable:class{byte[]result;using(varmemoryStr

新装的TensorFlow出现protobuf相关错误

今天刚装了个TensorFlow2.4,importtensorflow的时候,出现如下错误TypeError:Descriptorscannotnotbecreateddirectly.Ifthiscallcamefroma_pb2.pyfile,yourgeneratedcodeisoutofdateandmustberegeneratedwithprotoc>=3.19.0.Ifyoucannotimmediatelyregenerateyourprotos,someotherpossibleworkaroundsare: 1.Downgradetheprotobufpackageto3

c# - 使用Protobuf-net,我突然得到一个未知线型的异常

(这是我在RSS中看到的一个问题的重新发布,但被OP删除了。我重新添加了它,因为我在不同的地方看到这个问题被问过好几次;维基对于“良好的形式”)突然,我在反序列化时收到一个ProtoException,消息是:unknownwire-type6什么是线型?有哪些不同的线型值及其说明?我怀疑是某个字段导致了问题,如何调试? 最佳答案 首先要检查的是:输入数据是PROTOBUF数据吗?如果您尝试解析另一种格式(json、xml、csv、二进制格式化程序),或者只是损坏的数据(例如“内部服务器错误”html占位符文本页面),那么它不会工作

c# - 使用Protobuf-net,我突然得到一个未知线型的异常

(这是我在RSS中看到的一个问题的重新发布,但被OP删除了。我重新添加了它,因为我在不同的地方看到这个问题被问过好几次;维基对于“良好的形式”)突然,我在反序列化时收到一个ProtoException,消息是:unknownwire-type6什么是线型?有哪些不同的线型值及其说明?我怀疑是某个字段导致了问题,如何调试? 最佳答案 首先要检查的是:输入数据是PROTOBUF数据吗?如果您尝试解析另一种格式(json、xml、csv、二进制格式化程序),或者只是损坏的数据(例如“内部服务器错误”html占位符文本页面),那么它不会工作