草庐IT

Serialization

全部标签

c# - 在 .NET 中序列化,在 C++ 中反序列化

我有一个.NET应用程序,它以二进制格式序列化一个对象。此对象是由几个字段组成的结构。我必须在C++应用程序中反序列化并使用此对象。我不知道是否有任何C++的序列化库,google搜索结果不多。完成此任务的最快方法是什么?提前致谢。罗伊。更新:我在我的.NET应用程序中使用Protobuf-net进行了序列化,相对容易。我还使用GetProto()命令获取了protobuf-net生成的.proto文件。在.proto文件中,我的GUID字段获得了“bcl.guid”类型,但C++protoc.exe编译器不知道如何解释它们!我该怎么办? 最佳答案

c++ - 结构序列化

假设我有一个结构,我想使用winsock2通过网络将其成员值发送到另一个系统。我正在使用C++语言。我如何将它转换为char*记住结构必须在发送之前被序列化以及我如何在另一端将char*反序列化为结构?我发现提升序列化是对类似问题的建议,但任何人都可以用一个小代码片段来说明序列化和反序列化吗?这个问题可能看起来很基础,但相关帖子的其他答案并没有多大帮助。 最佳答案 以下示例显示了将struct序列化为char数组并将其反序列化的最简单方法。#include#include#defineBUFSIZE512#definePACKETS

c++ - 错误: 'make_array' 不是 'boost::serialization 的成员

我无法编译basicboostvectorexample.我在Windows10上,我正在使用nuwenMinGWdistro版本15.0,不包含git。此版本包含GCC7.10和Boost1.64。我解压了MinGw并将其放在我的文件系统的根目录中,我正在按照MinGW使用说明A运行set_distro_paths.bat。以下是无法在我的系统上构建的代码:vector失败.cpp:#include#includeintmain(){usingnamespaceboost::numeric::ublas;vectorv(3);for(unsignedi=0;i生成文件:vector-

java - 带有 Spring 和 Redis 的 Vaadin 在缓慢的环境中加载以前的 UI 状态

我在springboot+vaadin应用程序中成功启用了redis,它在我的电脑上运行良好。应用程序在较慢的环境中测试运行,多次出现错误。WARNc.v.s.communication.ServerRpcHandler[ServerRpcHandler.java:266]-Unexpectedmessageidfromtheclient.Expected:248,got:249好像是VaadinSession的序列化/反序列化时间过长的时候发生的。例如,我有一个包含多个复选框的页面。我点击第一个,然后是第二个和第三个。在此之后,将抛出上方警告并显示页面的先前状态。在这种情况下,它可能

python - 我应该如何使用 python 和 redis 存储简单对象?

假设我有很多(数百)大python词典。腌制文件大小约为2Mb。我想使用这个词典中的数据绘制图表,所以我必须加载它们。存储数据的最有效(第一速度,第二内存)方式是什么?也许我应该使用另一个缓存工具?这就是我现在解决这个任务的方式:腌制我的每一本字典。泡菜(字典)将腌制的字符串加载到redis。redis.set(key,字典)当用户需要图表时,我正在创建数组并用来自redis的未经处理的数据填充它。就这样:array=[]foriinrange(iteration_count):array.append(unpickle(redis.get(key)))现在我有两个问题:关于内存,因为

serialization - REDIS 中 HMSET 的 RESP 格式

我正在尝试使用RESP协议(protocol)在Oracle端使用传统SQL将表数据批量插入到redis哈希中。我已经为数据构建了RESP协议(protocol)格式:表格数据:col1-----col2v1-----v2RESP格式:"*6\r\n$5\r\nHMSET\r\n$4\r\nkey1\r\n$4\r\ncol1\r\n$1\r\n1\r\n$4\r\ncol2\r\n$1\r\n2\r\n"编辑:将此输出保存在一个文件中,通过管道将其提供给REDIS客户端,以进行批量插入。”我在这里错过了什么?当我尝试在shell中运行它时,出现此错误:$cattest_1.dat|r

database - 字符串如何在数据库中存储为字节?

这个问题可能有点模糊,但让我试着解释清楚。我一直在阅读与数据库相关的教程,它提到表被序列化为字节以保存在磁盘上。当我们反序列化它们时,我们可以根据其类型的大小来定位每一列。比如我们有一张表:---------------------------------------------------|id(unsignedint8)|timestamp(signedint32)|---------------------------------------------------|SomeId|Sometime|-----------------------------------------

php - 如何用 Golang 解码 PHP 序列化的 Redis 响应

我的Redis数据库有问题,它是用PHP序列化协议(protocol)编码的,但我不知道如何使用Golang解码这些数据,是否有类似JSONUnmarshall/Marshall的东西? 最佳答案 要在您的Go程序中读取此类数据,您必须在Go中重新实现unserializePHP函数。不过,我怀疑这是一项容易的任务。更好的解决方案是使用可移植格式在Redis中存储数据,例如JSON或GoogleProtobuf。 关于php-如何用Golang解码PHP序列化的Redis响应,我们在St

.net - 从字符串构造 C# Type 以进行序列化/反序列化的最佳方法

我想将字符串转换为C#类型。这里的用例是我将序列化数据与类型一起存储在缓存中,然后将其投回。我有一个名为DataEntities.Show的自定义类(其中DataEntities是一个命名空间)。如果我存储该类的类型“DataEntities.ShowEntity”,然后尝试反序列化它,一切都很好而且很漂亮。当我在缓存中存储类型为List的对象时,问题就开始了。其结果类型为“System.Collections.Generic.List`1[DataEntities.ShowEntity]”,因此下面的查找失败,因为程序集仅包含DataEntities.ShowEntity并且未找到结

serialization - 使用 ServiceStack Redis/TextSerializer 序列化父类字段

我有两个类(class)publicclassClassOne{publicGuidId{get;set;}}publicclassClassTwo:ClassOne{}当我将ClassTwo的实例发送到Redis(通过其TypeSerializer使用ServiceStack)时,父类(superclass)属性(例如Id)不会序列化,因为它在父类上。有没有办法让它工作? 最佳答案 只有抽象类、接口(interface)或后期绑定(bind)对象发出继承工作所需的必要__type信息。因此,如果您必须使用继承(这在DTO中是个坏主