问题标签 [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 投票
0 回答
1048 浏览

wcf - 使用 ProtoBehavior 和多个参数调用 WCF 服务

这让我感到困惑,我希望这是我的一个愚蠢的疏忽。当我调用以下 Web 服务时,如果遇到空参数,则以下所有参数均为空(或数字为零)。

例如,如果personyearsInIndustry存在但不存在industry,所有参数包括yearsInIndustry默认为空/零。我需要应用其他属性吗?

{edit} 我的错。Marc,它是带有自定义绑定的 WCF。

提前致谢。麦克风

0 投票
1 回答
1392 浏览

protocol-buffers - 等效于 SerializeWithLengthPrefix 的 C++

我使用套接字(TcpListener 和 TcpClient)使用协议缓冲区(protobuf-net)构建了一个通信库,它工作正常,但现在一个同事需要编写一个库来使用 C++ 与我的软件进行通信。

原来我正在使用Serializer.NonGeneric.SerializeWithLengthPrefixand Serializer.NonGeneric.TryDeserializeWithLengthPrefix

protobuf C++ 库中是否有等效函数?如果没有,任何人都知道如何实现它,或者它是否已实现共享?

0 投票
1 回答
1048 浏览

c# - 用于字段的 ProtoInclude?

我有一个简单的对象

我的钥匙有问题。它的类型是 object,但它可以是 int、long 或 string。我会直观地使用 ProtoInclude 属性来表示“期望这些类型”,但不幸的是它们只是类属性。有人知道我该如何解决这个问题吗?作为背景,公共对象 Key 在这里是出于历史原因(并且到处都是),所以我非常想避免所有重构之母 ;-) 任何机会我都可以将它序列化,甚至强制它序列化为一个字符串?

0 投票
1 回答
750 浏览

protocol-buffers - 将 PrefixStyle 切换为 Fixed32 后反序列化失败

我有一个用于我正在开发的通信库的测试套件,protobuf-net运行正常。所有测试通过。但是如果我将 PrefixStyle 从 Base128 更改为 Fixed32,反序列化将失败。

我从该TryDeserializeWithLengthPrefix函数收到的异常是:

p>

如果我在序列化和反序列化消息时简单地保留 PrefixStyle.Base128,一切都会正常工作。

有谁知道可能会发生什么?

0 投票
1 回答
2590 浏览

c# - 使用带有标志枚举的 ProtoBuf-Net 时出错

在使用 ProtoBuf-Net 并序列化枚举属性时,枚举设置为 [FlagsAttribute],我在序列化由多个标志组成的枚举值时收到以下错误消息。

错误是:值 (MyEnum.MyValue) 没有属性 MyProperty 的线表示

MyEnum在哪里:

似乎是 protobuf-net 中的错误?

0 投票
2 回答
1429 浏览

.net - 为什么我的 WCF 服务器使用 protobuf-net 返回空响应?

我更新了现有的 WCF 应用程序以添加 protobuf-net 支持。基本上,我有:

  • 在包含我所有数据对象的程序集中添加了 protobuf-net.dll (.net 3.0) 作为引用。我的服务器和客户端都引用了这个程序集

  • 将 [DataMember] 替换为 [DataMember(Order = x)] (使用递增的整数作为 x)

  • 使用 ProtoBehavior 属性更新了我的所有 OperationContracts

  • 更新了我的服务参考

从客户端,我在服务器上调用此方法:

ConnectionData 的定义如下:

现在,这是发生了什么:

  • 如果我调试服务器,我会看到 ConnectionData 对象已正确初始化并在 Join 方法中返回

  • 如果我调试客户端,我会看到我的 Join 调用返回了一个空对象

  • 我已将 WCF 跟踪启用到最大详细程度,在服务器日志中没有引起我的注意,但在客户端日志文件中我看到了以下警告消息:

System.Runtime.Serialization.ElementIgnored
在反序列化期间在 XML 中遇到无法识别的元素,该元素被忽略。
元素 http://tempuri.org/:proto

我已经嗅探了我的网络流量,我不怪 protobuf-net 无法反序列化:

如何进一步解决问题并让 protobuf-net 正确序列化我的消息?


我正在使用 protobuf-net r275

0 投票
2 回答
6033 浏览

c# - protobuf-net 如何实现可观的性能?

我想了解为什么Marc Gravell开发的.NET 协议缓冲区解决方案如此之快。

我可以理解最初的 Google 解决方案是如何实现其性能的:它为对象序列化预先生成优化代码;我已经手工编写了一些序列化,并且知道如果避免反射,可以通过这种方式编写非常快的代码。但是 Marc 的库是一个运行时解决方案,它使用属性并且不生成任何生成的代码。那么它是怎样工作的 ?

0 投票
2 回答
672 浏览

protobuf-net - protobuf-net:不正确的线型反序列化 TimeSpan

当我的客户端应用程序尝试反序列化来自 WCF 服务的消息(“不正确的线型反序列化 TimeSpan”)时,我收到此异常。

我正在使用 .NET 3.5 SP1 和最新版本的 protobuf-net (1.0.0.275)。我不知道可能是什么问题。我不理解此错误消息的原因。任何人?

0 投票
1 回答
1112 浏览

.net - 我可以为 protobuf-net WCF 使用 net.tcp 绑定吗?

我可以为 protobuf-net WCF 使用 net.tcp 绑定吗?

我可以使用 ClientBase 还是必须使用 ProtoClient?

0 投票
2 回答
3593 浏览

protobuf-net - 使用 protobuf-net r275 进行 DataContract 序列化

我刚刚更新到 r275 版本,它似乎不再正确管理 DataContract 类通过序列化这个非常简单的类:

我得到只有数据合同类(以及此类列表/数组)可以被处理(错误处理 ProtoData)