问题标签 [protobuf-net]

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

c# - 使用 Protobuf-net 序列化对象列表

我一直在寻找对文件进行一些二进制序列化,而 protobuf-net 似乎是一个性能良好的替代方案。不过,我有点卡在入门上。由于我想将类的定义与实际的序列化分离,因此我没有使用属性,而是选择使用 .proto 文件,因此我已经将对象的结构降低了(我认为)

(日期时间有效还是应该使用刻度作为 int64?)

但我一直坚持如何使用 protogen,然后将 IEnumerable 的 Post 序列化到文件中并将其读回。任何帮助,将不胜感激

另一个相关问题,是否有检测损坏的二进制文件的最佳实践,例如在序列化时计算机是否关闭

0 投票
1 回答
1022 浏览

c# - protobuf-net 与 C++ 通信

我正在寻找实现各种消息格式的 protobuf-net,我特别喜欢基于合同的方法,因为我不必弄乱 proto 编译器。我无法找到相关信息的一件事是,这是否会使跨平台工作变得困难?有一些 C++ 应用程序需要能够解析 PB 数据,虽然我知道 protobuf-net 序列化为 PB 标准格式,但如果我使用合同方法而不是 proto 文件,C++ 端如何解析数据?

可以(应该吗?)我为 C++ 需要理解数据的(极少数)情况编写一个单独的原型文件?如果是这样,我怎么知道从 proto 文件生成的 C++ 类将匹配来自 no-proto-file C# 端的数据?

0 投票
8 回答
65679 浏览

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

(这是我在 RSS 中看到的一个问题的重新发布,但被 OP 删除了。我重新添加了它,因为我在不同的地方看到这个问题被问了好几次;wiki for "good形式”)

突然,我在反序列化时收到一条ProtoException消息:unknown wire-type 6

  • 什么是线型?
  • 有哪些不同的线型值及其描述?
  • 我怀疑是某个字段导致了问题,如何调试呢?
0 投票
1 回答
1463 浏览

c# - 是否可以将 ProtoBuf-Net 与 ISerializable 机制一起使用?

我们有一个通过实现 ISerializable 和使用 BinaryFormatter 来使用序列化的项目。我们正在转向没有 BinaryFormatter 类的 .net compact。我想知道我们是否可以使用 ProtoBuf-Net。我们可以指示 ProtoBuf-Net 使用 GetObjectData() 进行序列化吗?具体来说,我想了解如何使用 Serializer.Serialize(SerializableInfo, ISerializable) 函数。

添加了我查看了源代码,我看到虽然函数

Serializer.Serialize(SerializableInfo, T t) 其中 T is ISerializable 根本不使用约束 T is ISerializable 。为什么 T 被声明为 ISerializable?

0 投票
1 回答
4270 浏览

c# - 如何使用 protobuf-net 扩展?

我创建了一个 .proto 文件,并且 ProtoBufTool 成功创建了 .cs 文件。我对 csharp 有点陌生,我正在尝试设置扩展字段。但不知道该怎么做?有没有人有任何示例如何使用 protobuf-net 使用扩展。

我的 .proto 文件:

这是创建的类:

0 投票
1 回答
787 浏览

serialization - 在消息中检测到不匹配的组标签 - protobuf-net

我对 Silverlight 很陌生。我正在为一个主要依赖于序列化和反序列化的项目工作。

以前,对于 WPF,我对 Serializable 类感到满意。对于 silverlight,我发现 protobuf 会非常有用。但是,我对这个例外感到困扰。我不知道是什么导致了这个问题。请帮帮我。

我正在使用 Silverlight 3.0。protobuf-net r282

请找到我正在使用的代码。

我用来反序列化的代码是

我的示例 XML 看起来类似于

提前致谢。
维诺德

0 投票
1 回答
846 浏览

c# - protobuf-net [反] 跨程序集边界的序列化

我在一个程序集中有一个基类,在另一个程序集中有大量从基类继承的生成类。尝试解析 subclassType(SerializerT.cs 的第 248 行)时,使用 protobuf-net (r282) 序列化基类型列表失败,因为子类不在基类的程序集中。将这些类一起移动不是一个首选选项,我可以传递 List 是相当重要的。

这是我标记的基类。包含的类型ProtoMember(x)根据需要标记。

作为旁注,这是评估使用 protobuf-net 替换 BinaryFormatter 以在桌面应用程序和 SOAP Web 服务之间移动数据的一部分。

我可以做这种事情吗?有没有更好的办法?我只是错过了一些明显的东西吗?一个单独的长期问题是我是否应该做一些稍微不同的事情来为最终迁移到 3.5 做准备?

0 投票
2 回答
1691 浏览

wcf - .NET 紧凑框架中的 WCF 托管

我想在 WinCE 设备上托管服务。WinCE 设备是可由多个客户端(PC 或 WinCE)通过串行端口、TCP、USB 等访问(控制和数据采集)的主机。我正在考虑使用协议缓冲区进行在线序列化。使用 WCF 或远程处理将是理想的,但据我所知,它们并未在 Compact Framework 上实现。任何人都知道如何实现这一目标。

0 投票
1 回答
1610 浏览

c# - 协议缓冲区 c# (protobuf-net) Message::ByteSize

我正在寻找与 C++ API 等效的 protobuf-net,Message::ByteSize以找出以字节为单位的序列化消息长度。

0 投票
1 回答
2476 浏览

.net - Protobuf-net - 序列化 .NET GUID - 如何在 C++ 中读取它?

我已经在我的 .NET 应用程序中使用 Protobuf-net 相对轻松地序列化了一个对象。我还使用 GetProto() 命令获得了 protobuf-net 生成的 .proto 文件。

在 .NET 生成的 .proto 文件中,我的 GUID 字段的类型为“bcl.guid”。

现在我希望用 C++ 编译 .proto 文件,这样我就可以反序列化数据。

但是,C++ protoc.exe 编译器不知道如何解释 bcl.guid,并抛出错误消息“VideoAudioStructs.proto:11:13: "Guid" is not defined。” 我该怎么办?