binary-serialization相关内容

如何分析二进制序列化流的内容?

我使用二进制序列化 (BinaryFormatter) 作为临时机制,将状态信息存储在文件中,用于相对复杂的(游戏)对象结构;文件出来的比我预期的要大得多,而且我的数据结构包括递归引用 - 所以我想知道 BinaryFormatter 是否实际上存储了相同对象的多个副本,或者我的基本“数字"我应该拥有的对象和值的数量"算法是偏离基础的,或者过大的尺寸来自哪里. 搜索堆栈溢出我能够找到 Mic ..
发布时间:2021-12-21 22:18:50 C#/.NET

如何为二进制格式化程序创建一个 SerializationBinder 来处理类型从一个程序集和命名空间到另一个程序集的移动

上下文如下 我想通过将代码移动到不同的项目来重构代码 其中一些代码由可序列化的 DTO 组成,这些 DTO 用于跨多个端点发送和接收数据 如果我移动代码,序列化会中断(因此它不是向后兼容我的应用程序的旧版本) 这个问题的一个解决方案是 SerializationBinder,它允许我从某种意义上“重定向"到另一种类型. 因此我想创建一个 SerializationBinder ..

XmlSerializer 和 BinaryFormatter 之间有什么区别

上周我花了很多时间进行序列化.在那段时间里,我发现了许多使用 BinaryFormatter 或 XmlSerializer 的示例.不幸的是,我没有找到任何全面详细说明两者差异的例子. 我好奇的根源在于为什么 BinaryFormatter 能够直接反序列化到接口,而 XmlSerializer 则不能.Jon Skeet 在回答“在运行时转换为多个(未知类型)" 提供了一个直接二进制序列 ..
发布时间:2021-12-21 22:07:14 C#/.NET

当您没有类的源代码时,是否可以对对象进行 .NET 二进制序列化?

我正在使用 BinaryFormatter 对 C# 中的某些对象进行二进制序列化.但是,某些对象包含我通过 DLL 访问的类并且没有源代码,所以我不能用 Serializable 属性标记它们.有没有一种直接的方法来序列化它们?我有一个解决方法,它涉及获取类 NoSource 并创建一个新类 SerializableNoSource,其中构造函数获取一个 NoSource 对象并提取我的所有信息 ..
发布时间:2021-12-21 21:58:31 C#/.NET

protobuf-net 是否具有用于序列化的内置压缩?

我在 BinaryFormatter 和 protobuf-net 序列化程序之间做了一些比较,对我found,但奇怪的是 protobuf-net 设法将对象序列化为一个比我只写将每个属性的值转换为一个没有任何元数据的字节数组. 我知道如果您将 AsReference 设置为 true,protobuf-net 支持字符串实习,但在这种情况下我不会这样做,protobuf-net 也提供了 ..
发布时间:2021-06-22 19:46:42 其他开发

BinaryFormatter.反序列化“无法找到程序集"在ILMerge之后

我有一个带有引用的dll的C#解决方案(也是具有相同.Net版本的C#).当我构建解决方案并运行生成的exe而不合并exe和所引用的dll时,一切正常. 现在,我想将这些合并为一个exe.我运行ILMerge,一切似乎都正常.我尝试执行该exe文件,在它试图反序列化引用的dll中定义的对象之前,它似乎运行得很好. 使用(Stream fstream = new FileStream(fil ..
发布时间:2021-04-18 18:49:23 C#/.NET

我仍应在.NET 4.0中使用BinaryFormatter进行简单序列化吗?

我正在开发一个主从样式的应用程序.主应用程序将状态数据发送到从属设备,以一定的速率进行处理和显示.状态数据被包装到一个包含多个字段的类中.这些字段类型由基元,类,接口,接口列表等组成.所有类型都是BCL或自定义类型,因此可以根据需要修改自定义类型.主应用程序和从应用程序都将是.NET 4.0.我不关心序列化版本控制,因为主应用程序和从属应用程序将成对提供. 我需要一种“快速"的方法来序列化主 ..
发布时间:2021-04-01 21:24:18 C#/.NET

有线协议序列化

我正在寻找所谓的“二进制序列化器/反序列化器代码生成器",因为它缺少一个更好的术语,该术语专门允许您使用任意方式指定在线格式位长度,然后生成必要的C/C ++代码以打包/解压缩该格式的数据包.我开始使用带有位字段的结构,但是阅读了此内容之后帖子我想知道是否已经有一些东西可以处理所有麻烦的问题.我需要处理的示例数据结构: struct header { unsigned int val ..
发布时间:2020-07-29 21:17:53 其他开发

Dropwizard和协议缓冲区的示例

请注意:尽管此问题专门提到了Dropwizard,但我相信任何具有Jersey/JAX-RS经验的人都应该能够回答此问题,就像我想象的那样,Dropwizard只是遵循引擎盖/JAX-RS的惯例. 我有一个 Dropwizard 服务,该服务使用JSON进行改写/编写,效果很好. 我现在想将其切换为读/写二进制数据(以最小化网络带宽).我看到有一个 Dropwizard-Protobu ..

HashMap格式不正确的二进制序列化< String,Double>

我编写了一些代码来迭代条目并序列化它们中的每一个,而不是使用 ObjectOutputStream.readObject()来编写 HashMap )。原因仅仅在于效率:结果文件要小得多,而且写入和读取速度要快得多(例如0.6秒内为23 MB,9.9秒为29 MB)。 ObjectOutputStream oos = new ObjectOutputStre ..
发布时间:2018-06-04 13:51:44 Java开发

有条件的C#二进制序列化

我使用的BinaryFormatter序列化类和条件的变量。例如: [Serializable接口] 公共类的Class1 { 私人的Class2 B: : } [Serializable接口] 公共类的Class2 {...} 我想只序列化的变量b远程处理的时候,而不是当我序列化到文件存储。 的问题:结果 1)我知道,在XmlSerializati ..
发布时间:2016-09-20 09:54:25 C#/.NET

如何分析二进制序列化流的内容是什么?

我使用的是二进制序列(的BinaryFormatter)作为临时机制来存储在一个相对复杂的(游戏)对象结构的文件状态信息;这些文件现身多比我预期的大,我的数据结构包括递归引用 - 所以我想知道的BinaryFormatter是否实际存储相同对象的多个副本,还是我的基本“号对象和我应该有值“arithmentic是遥远基地,或别的地方的尺寸过大的来源。 搜索上的堆栈溢出我能找到规范微软二进制格 ..
发布时间:2016-09-08 17:55:53 C#/.NET