问题标签 [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 回答
7166 浏览

c# - 在 C# 中读取 Protobuf 消息

我有一个简单的信息:

很棒的 VS 插件生成.cs文件:

我正在使用从 java 端发送消息

在我的 C# 应用程序中,它的作用类似于 Socket 侦听器,我有一个名为 Listen 的方法,它侦听 java 客户端发送的消息:

我显然在这里缺少一些基础知识。

我应该使用什么方法来获取 sendName 对象?


当我在 C# 中调试我的代码时,调试器会在我调用DeserializeWithLengthPrefix方法时退出。

这是我的 C# 代码:

这是我的java代码:

0 投票
4 回答
4008 浏览

c# - 在 Proto-Buf 中使用 bool 类型

我在我的应用程序中使用 protobuf-net 进行序列化/反序列化。我面临一个问题。

我在我的 collction 对象中使用这个类。

The serialization process workes fine, but after deserialization the Value for property IsPeriodic by default is true eventhough it was false for some cases. Can anyone help me?

0 投票
1 回答
1942 浏览

c# - 使用 WCF 的 HTTP GET 上的协议缓冲区

我有一个托管的 WCF 服务,它返回一个字节 [] 的 protobuf-net 序列化数据。最初这是通过默认的 webHttpBinding 设置 (SOAP) 托管的,并且一切正常。我最近发现我需要直接从我们的客户端调用 HTTP GET 和 POST,所以我认为切换到使用 RESTful 服务会更容易。我切换到使用 WebGet 属性和 WCF REST 模板。

我试图创建一个简单的网站来测试客户端,但在反序列化数据时遇到了麻烦。这是我如何调用服务的示例:

“结果”中返回的内容示例:

我还尝试反序列化 < base64Binary > 标签之间的数据,但没有结果。有谁知道我应该如何从 WebGet 方法发送二进制 protobuf-net 数据以及我应该如何反序列化数据?谢谢。

0 投票
1 回答
850 浏览

c# - 使用带有套接字的流的异步方法

我一直构建自己的序列化器/反序列化器,以便能够将 BeginReceive/EndReceive 与套接字一起使用,以避免每个连接的套接字使用一个线程。这是一项相当耗时的任务。

我已经开始研究 protobuf-net 并希望将它与异步套接字一起使用,而不必自己编写序列化/反序列化。如果我不必为每个套接字使用一个线程来包装阻塞操作,我会更喜欢。

查看快速入门,他们正是这样做的(每个客户端一个线程)。难道没有别的办法了吗?

我的问题不是关于 protobuf-net,而是关于序列化和套接字。但是 protobuf-net 的例子是最受欢迎的。

0 投票
2 回答
3227 浏览

c# - protobuf-net 和 rpc over tcp

我正在寻找使用 protobuf-net(或任何其他 .net protobuf 实现)的 rpc over tcp 实现。

有什么建议么?

0 投票
1 回答
3262 浏览

protobuf-net - 用于了解发送的 protobuf 消息类型的 API

知道正在发送哪种 protobuf 消息的 API 是什么?

例如,我使用以下内容获取 SendNameMessage 对象。

SendNameMessage sendNameObj = Serializer.DeserializeWithLengthPrefix<SendNameMessage>(stream, PrefixStyle.Fixed32);

听众如何知道正在发送什么样的消息?

以下是我的 SendNameMessage 类:

我如何知道正在发送的消息是 sendName 还是 sendId?

0 投票
1 回答
616 浏览

c# - 带有 windows phone 7 的协议缓冲网络

我正在尝试从 Windows Phone 7 应用程序的协议缓冲区格式的服务器下载响应。

我正在尝试使用 WebClient 执行此操作,我的问题如下。

WebClient只有两种下载方式

但是这两种方法都不好检索响应,因为响应大小应该有16个十六进制字符(080118CBDDF0E104),但是这两种方法得到的字符串和流的大小只有8。

所以我正在寻找一种方法来解决我的问题。我找到了一个用于 C#

http://code.google.com/p/protobuf-net/source/browse/trunk/BasicHttp/HttpClient/ProtoWebClient.cs?spec=svn340&r=3​​40

但此方法已被删除或尚未在 Windows Phone 7 开发工具包上实现。

0 投票
2 回答
2794 浏览

c# - Protobuf-net:无法创建抽象类的实例

基于此处找到的代码:protobuf 和 List<object> - 如何序列化/反序列化?我创建了一个具有 ProtoObject 值类型的通用“ProtoDictionary”。

这是我的 ProtoDictionary 代码:

对于原型对象:

问题是,当我尝试使用以下代码从 SQL 反序列化 ProtoDictionary 时:

我收到错误“InvalidOperationException:无法创建抽象类的实例”。

我的 StackTrace 如下:

我不确定我做错了什么。任何帮助将不胜感激。

谢谢,丹

0 投票
1 回答
903 浏览

protobuf-net - protobuf-net,它是怎么做的?

我们现在使用 .net 二进制序列化来序列化数据以持久化。它完成了这项工作,但并没有像它打算用于该目的那样下降,因为更改数据并不是那么微不足道。

所以我开始研究 protobuf,因为它是围绕这个目的设计的。

我正在查看 protobuf-net 如何使用它。下面是一些我还不知道的东西。如果您已经得到答案,它将节省我的时间。

  • 我不关心 .proto 文件,因为产品只是在 .net 中。那么我可以在没有 .proto 文件的情况下使用 protobuf-net 吗?
  • 如果是,如果需要移植到其他语言,我以后可以从我的 c# 类中生成 .proto 文件吗
0 投票
1 回答
913 浏览

.net - protobuf-net 和从泛型集合派生

我无法弄清楚如何让 protobuf-net 序列化从 List<T> 派生的对象。我尝试添加 ProtoInclude 属性,但收到ProtoBuf.ProtoException :ProtoIncludeAttribute 的已知类型列表`1 必须是 UserTypeCollection 的直接子类。当我删除 ProtoInclude 属性时,似乎数据根本没有被序列化。我似乎在任何地方都找不到这种情况的任何例子。我正在添加 protobuf 序列化作为 WS api 的一个选项,并且需要保持与 DataContractSerializer 的兼容性。