问题标签 [binary-deserialization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
546 浏览

vb.net - 动态编译代码的反序列化程序集错误

我正在尝试序列化动态生成/编译的程序集以存储到 SQL 中,然后提取程序集以供使用。但是,我遇到了一个让我发疯的错误。

"无法加载文件或程序集 '<random code>,Version=0.0.0.0,Culture=neutral,PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件。 "

当我尝试对程序集进行反序列化时。将不胜感激任何指针。部分代码:

ERROR 此时:在线voAssembly = voBF.Deserialize(voMemStream)

无法加载文件或程序集 '...<random code>..., Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' 或其依赖项之一。系统找不到指定的文件

0 投票
1 回答
986 浏览

deserialization - protobuf-net 对大文件进行反序列化

我需要反序列化 1.5GB 的 txt 文件。我正在使用来自 code.google.com/p/protobuf-net/ 的 protobuf-net

有时它会在不同的地方出现不同的异常(空引用、内存访问冲突)而失败(大约 50% 的情况)。我注意到,如果处理器负载低,那么故障的可能性就会降低。

我应该怎么做才能避免此类失败?

下面是反序列化代码的示例:

今天我有一个错误代码为 0xc0000005 的 FatalExecutionEngineError,但我无法意识到代码的哪一部分可能不安全。这不是一个持续的错误,我重新启动应用程序后一切正常。

这是带有序列化的文件的示例,我需要对其进行反序列化: https ://docs.google.com/file/d/0B1XaGInC6jg3ZXBZZDA3bHh3bVk/edit

0 投票
4 回答
99 浏览

c++ - 在 C++ 中实现 address-albe 字段的最佳方法是什么?

我正在尝试实现反序列化,其中到字段/成员的映射仅在运行时才知道(它很复杂)。无论如何,我想做的是如下所示:

然后我有两个数组,一个带有字段的索引,另一个带有指示类型的东西。然后我想遍历数组并从字节流写入字段。

对不起,糟糕的描述,但我只是不知道如何在代码中实现它。任何想法将不胜感激谢谢!

0 投票
3 回答
1829 浏览

c#-4.0 - C#中的二进制反序列化通用对象

我有一个可以序列化的通用类:

所以我想反序列化它,如果T是一个String实例来处理它,在另一种情况下我想抛出一个异常。

反序列化时如何知道泛型包含的类型MyOwnGenericClass<T>?我必须将以下代码转换为哪个类?

0 投票
1 回答
140 浏览

.net - ISolution 的序列化 - Roslyn CTP3

我一直在元编程的上下文中尝试使用 Roslyn,但在将 ISolution 或 IProject 对象持久保存到数据库时遇到了困难。这是我尝试将 ISolution 对象序列化为字节数组然后返回对象的内容。我遇到了类未标记为可序列化的异常。我对这方面的任何想法持开放态度,如果我以错误的方式处理这个问题,请随时这样说。

更新:我需要将这些项目序列化到数据库的原因涉及基因编程实验。基本上你可以改变一个解决方案,或者稍微项目,然后测试这个新改变的程序,然后如果它在测试阶段表现良好,就将这个改变的程序用于后代。不幸的是,将所有这些对象一直保存在内存中有点不切实际。停电是保持这些实体状态的一个很好的理由,还有其他的。所以我不一定需要将这些东西序列化为字节本身,我可以只保存最少量的信息,以便在需要时重建这些对象。但是,我不确定实现最终目标的最有效方法。

0 投票
1 回答
189 浏览

c# - 只有接口可用时如何反序列化?

我有三个组件:

  • 实用程序库(Processor.dll):只知道元素库
  • 元素库(IElement):不知道任何库
  • 应用程序:了解这两个库

应用程序调用处理器库并传递给它一个类型的类:

ClassA 在传递给处理器之前被序列化。Processor 是一个基础库,不知道 ClassA 等类类型。但是,它确实知道 IElement。处理器将反序列化传递给它的 IElement,它是 ClassA 类型。

问题是接口无法反序列化。但是处理器不知道 ClassA 也不应该知道。在这种情况下,如何获取对传入对象的引用?

0 投票
1 回答
2451 浏览

c# - 使用 SharpSerializer 反序列化异常

我正在尝试二进制序列化来处理一些复杂的对象。使用 SharpSerializer,序列化工作没有问题,但我不能反序列化。

这是代码片段和堆栈跟踪。

堆:

我想反序列化一个复杂的结构,其中有自定义控件的层次结构和大量继承。

这段代码有什么问题?

编辑:序列化代码

我试图序列化/反序列化的对象是这样的:

其中BasePluginaUserControl是由其他类型扩展的。这是BasePlugin课程

就像附带信息一样,运行昨天的相同代码现在会导致此消息:

0 投票
1 回答
1300 浏览

c++ - 使用 Boost 和 uint8_t 进行二进制序列化

在处理二进制数据时,我倾向于使用uint8_t. 我想这对我来说似乎是一个字节的类型。但是,我无法弄清楚如何让二进制序列化在 boost 中使用该类型。我是在问不可能的事情还是只是错过了一些简单的事情?

此示例程序无法在 VS2013 上编译,并抱怨不会将流转换为std::ostreamor std::istream

该程序可以正常工作,char而不是uint8_t,但这让我很烦恼。:)

0 投票
1 回答
350 浏览

c# - .Net 中 Apache Thrift 反序列化的奇怪行为

我在我的应用程序中使用 Apache Thrift 在多台机器之间交换数据。

我从外太空接收数据,创建传输、协议并将接收到的数据反序列化为对象。这是我的代码:

我知道,我收到二进制序列化的TCciUserLoginV1.cciUserLoginV1_result,因为其他类型的反序列化会引发异常。但是 result.Success 属性的正常反序列化在 while 循环的第 10 次迭代后发生。为什么我使用while。谁能告诉我发生了什么事?

提前致谢。

0 投票
1 回答
148 浏览

c# - 修改类型时强制二进制反序列化失败

我正在寻找一种非侵入式的方式来强制反序列化在以下情况下失败:

  • 该类型未在强命名程序集中定义。
  • 使用 BinaryFormatter。
  • 自序列化以来,类型已被修改(例如,已添加属性)。

下面是一个失败的 NUnit 测试形式的问题的说明/重现。我正在寻找一种通用的方法来使这个通过而不修改Data类,最好只设置BinaryFormatter在序列化和/或反序列化期间。我也不想涉及序列化代理,因为这可能需要每个受影响类型的特定知识。

在 MSDN 文档中找不到任何对我有帮助的东西。