问题标签 [binary-serialization]

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 回答
1838 浏览

c# - 列表的二进制序列化其中 T 实现 ISerializable

我有一个实现 ISerializable 的类 X

我有一个 Y 类,其中包含一个 List 和一个 eventtaggregator。

我需要以二进制序列化 Y 。

但是当我反序列化 Y 并检查以下行时,它会返回一个带有空值的 List,而不是应该已序列化的 X 对象。

知道这段代码有什么问题吗?我无法简单地使用条件序列化进行序列化,Color 没有被序列化,而且 ObservableDataSource 没有 Serializable 属性,我无法修改它。

这是在 .NET 框架 3.5 中(如果有任何用处)。

0 投票
3 回答
2352 浏览

c# - 反序列化跨程序集移动的类型

我有一堆类型已从一个程序集转移到另一个程序集。我正在尝试使用SerializationBinder将使用旧程序集序列化的数据序列化为新程序集中的类型。

编辑:程序集的根命名空间与程序集名称相同。旧程序集不再存在。

反序列化代码看起来像这样 -

当我尝试反序列化时,在尝试加载旧程序集时出现错误。

无法加载文件或程序集“旧程序集”或其依赖项之一。该系统找不到指定的文件。

0 投票
1 回答
473 浏览

.net - SurrogateSelector 似乎仅适用于根对象

我尝试使用 SurrogatSelector 来自定义流的反序列化。它适用于对象图的根对象,但不适用于包含的对象。请参阅以下代码:

StringSerializationSurrogate 在反序列化字符串时调用(方法 SetObjectData),但在反序列化包含字符串(作为可序列化成员)的对象时不调用。要序列化/反序列化的对象如下所示:

有没有办法让代理在非根对象上被调用?为了完整起见,代理看起来像这样(测试代码仅用于设置断点):

0 投票
2 回答
406 浏览

c# - 在c#中将字节[]转换为结构的两种方法的区别

我正在一些结构和他们的byte[]表示之间进行一些转换。我找到了两种方法来做到这一点,但区别(性能、内存和......)对我来说并不清楚。

方法一:

方法二:

那么哪个更好,主要区别是什么?

0 投票
1 回答
125 浏览

module - Orange 的二进制序列化后端

为什么Orange除了 XML 之外,该库不支持二进制序列化后端?是因为 D 当前无法访问/反映其二进制表示,还是只是尚未确定优先级?如果可能,我应该使用哪些 D 语言功能和/或Phobos模块来实现二进制序列化后端Orange

对于 D2,我想考虑到我们有权利,这应该很简单std.binmanip

0 投票
1 回答
2921 浏览

c# - 二进制序列化和自动属性

我有这样的课:

该类用于二进制序列化(BinaryFormatter 的标准使用)。IBar 的实现标有 [Serializable],因此一切正常。

现在我不想序列化 Bar 并保持向后兼容性(无论如何都没有在代码中引用它)。 NonSerialized属性似乎就足够了。但是,它只能应用于字段,不能应用于自动属性。所以我尝试了这个:

令人惊讶的是它运作良好 - 我可以反序列化旧的 Foos 和新的。

我的问题是:如果这些是序列化的字段并且自动属性的支持字段的名称中可能包含一些非 C# 字符,它怎么可能工作?

换句话说:

老 Foo 的 IBar 字段名称(我的猜测):k__BackingField

新 Foo 的 IBar 字段名称:_bar

显然它们不匹配,那么 BinaryFormatter 如何克服这个问题?

0 投票
0 回答
321 浏览

ruby-on-rails - 在 Rails 中将对象(真正的 Mongoid 文档)序列化为任何二进制格式

我实现了处理来自 mongodb 数据库的文档的异步进程。我有类似主线程的东西,它检查集合中是否存在新对象,然后将其放入队列(RabbitMQ),以及几个处理来自队列的消息的处理程序(当前是一个)。因此,当我将消息放入队列时,我需要将其序列化为二进制格式,因为我正在使用amqp协议。当处理消息时,我需要从二进制数据中返回我的对象​​。顺便说一句,我使用rabbitmqviaamqp gem

我尝试用 做这些事情BSON gem,但它只处理哈希并抛出异常,然后尝试序列化对象本身。尝试msgpack-rails gem,但它会引发“未定义的方法 .to_msgpack”错误。

所以请帮助我快速到二进制序列化,以及从二进制反序列化。谢谢。

0 投票
1 回答
6413 浏览

c# - 将多个对象序列化为一个二进制文件

我有一个 MDI 应用程序,其中有一个停靠在左侧的树视图控件和五个包含树节点信息的类,即此类节点的编辑器。

  • 我应该如何序列化应用程序,以便将所有对象序列化为单个二进制文件?

  • 如何将我的资源存储在其中,以便可以将单个文件发送到所有机器?

谢谢。

0 投票
2 回答
2369 浏览

c# - 使用 BinaryReader 读取/写入 Nullable 类型?

我正在重载 System.IO BinaryReader 以序列化某些类以用于文件存储目的。我在处理字典之类的项目时没有遇到任何问题,但使用可空类型并没有成功。有可能吗?具体来说,我正在尝试十进制?和字符串?,但任何类型都应该适合我的解决方案。

出于特定的业务原因,我必须进行二进制序列化,因此请将响应限制为仅适用于此的解决方案。

例如...对于读取/写入字节数组,我使用以下方法:

0 投票
1 回答
3145 浏览

c# - 反序列化时出现SerializationException

此代码从 SQLite 反序列化对象。我从 DBinaryData (BLOB) 字段中获取序列化对象。但是获取 System.Runtime.Serialization.SerializationException: end of stream 在解析完成之前遇到。如何解决这个问题?