• 第一个测试的proto文件
 syntax = "proto3";
package ProtoMsg; message Foo
{
string name = ;
int32 id = ;
repeated bytes data = ;
enum Types
{
Hight = ;
Low = ;
Normal = ;
}
Types type = ;
}
  • 第二个测试proto文件
 syntax = "proto3";
import "Foo.proto";
package ProtoMsg; message FooWapper
{
repeated Foo foos = ;
}
  • 分别生成C#源文件
 protogen.exe Foo.proto --csharp_out=./
protogen.exe FooWrapper.proto --csharp_out=./
  • 例子程序
 static void Main(string[] args)
{
FooWapper fw = new FooWapper();
Foo f = new Foo();
f.Datas.Add(new byte[] {0x1, 0x2, 0x3});
f.Id = ;
f.Name = "proto-net";
f.Type = Foo.Types.Hight;
fw.Foos.Add(f); byte[] data;
Console.WriteLine("开始序列化数据.");
using (var stream = new MemoryStream())
{
Serializer.Serialize(stream, fw);
data = stream.ToArray();
} Console.WriteLine("开始反序列化数据.");
using (var stream = new MemoryStream(data))
{
var _fw = Serializer.Deserialize<FooWapper>(stream);
Console.WriteLine(_fw);
} Console.ReadKey();
}
  • 程序执行结果

protobuf-net简单使用的更多相关文章

  1. Protobuf的简单介绍、使用和分析

      Protobuf的简单介绍.使用和分析   一.protobuf是什么? protobuf(Google Protocol Buffers)是Google提供一个具有高效的协议数据交换格式工具库( ...

  2. protobuf的简单使用

    操作系统 : CentOS7.3.1611_x64 gcc版本 :4.8.5 go 版本 : go1.8.3 linux/amd64 Python 版本 : 2.7.5 libprotoc : 2.5 ...

  3. Centos6.5下安装protobuf及简单使用

    1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://code.google.com/p/protobuf/ 2.下载最新的protobuf,下载地址:https ...

  4. Centos6.4下安装protobuf及简单使用

    1.protobuf是google公司提出的数据存储格式,详细介绍可以参考:https://code.google.com/p/protobuf/ 2.下载最新的protobuf,下载地址:https ...

  5. .NET序列化工具Jil、Json.NET和Protobuf的简单测评

    前一段时间逛园子的时候发现有人比较了Jil.Json.NET和Protobuf的性能,一时好奇,也做了个测试,这里记录下来,以供查阅. 前期准备 依赖类库的话,可以通过Nuget在公共组件库总下载,这 ...

  6. Unity手游之路<一>C#版本Protobuf

    http://blog.csdn.net/janeky/article/details/17104877 个游戏包含了各种数据,包括本地数据和与服务端通信的数据.今天我们来谈谈如何存储数据,以及客户端 ...

  7. (转)RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)

    什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩 ...

  8. protobuf 中的嵌套消息的使用

    protobuf的简单的使用,不过还留下了一个问题,那就是之前主要介绍的都是对简单数据的赋值,简单数据直接采用set_xx()即可,但是如果不是简单变量而是自定义的复合类型变量,就没有简单的set函数 ...

  9. RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)

    什么是ProtoBuf? 一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的语言无关.平台无关.可扩 ...

  10. SpringBoot整合Netty并使用Protobuf进行数据传输(附工程)

    前言 本篇文章主要介绍的是SpringBoot整合Netty以及使用Protobuf进行数据传输的相关内容.Protobuf会简单的介绍下用法,至于Netty在之前的文章中已经简单的介绍过了,这里就不 ...

随机推荐

  1. 非maven配置SpringBoot框架

    简介 最近看SpringBoot框架非常火,所以尝试的参照资料学习了一下SpringBoot框架, 起初是搭建的maven项目,可是个人觉得maven项目搭建起来不太方面(还有网络 原因),所以我这性 ...

  2. JN_0016:查找端口占用

    Windows查看端口占用   一. 查看所有进程占用的端口 在开始-运行-cmd,输入:netstat –ano 可以查看所有进程 二.查看占用指定端口的程序 当你在用tomcat发布程序时,经常会 ...

  3. MySQL 8 服务器插件

    安装插件 内置插件时服务器能够自动识别的,通常在服务器启动时加载内置插件. 在mysql.plugin表中注册的插件,这种插件不同于内置插件(内置插件不需要注册),通常在服务器启动时会加载mysql. ...

  4. 输出redis cluster集群所有节点指定的参数的配置

    需要:实现类似redis-trib.rb call 命令的功能,输出redis cluster集群所有节点指定的参数的配置 redis-trib.rb的输出 [redis@lxd-vm3 ~]$ re ...

  5. Period 时间坑

    jdk1.8 的Period Period between = Period.between( LocalDate.parse("2018-01-01 00:00:00", Dat ...

  6. Linux X_window与文本模式的切换

    用x_window启动的情况下的切换方法: [Ctrl] + [Alt] + [F1] ~ [F6]  :文字接口登陆 tty1 ~ tty6 终端机: [Ctrl] + [Alt] + [F7]   ...

  7. LaTeX 技巧 802:国内期刊 CCT 模板编译经验

    国内有不少期刊依旧在使用过时的 CCT 方式来支持中文,这些模板非常相似,似乎系出同源.由于这些模板在现代的 TeX 发行版内无法正确编译,对不少投稿人造成困扰,所以我写下这篇文章,希望对投稿人有一些 ...

  8. 树莓派查看ip地址(命令ifconfig)和退出ping

    1.1树莓派查看ip地址用如下命令: ifconfig -a 结果如下图所示: 注意:树莓派查看ip地址是用命令ifconfig,而Windows的cmd命令查看ip地址是ipconfig.

  9. Linux 用户命令

    用户管理的命令 添加删除用户,注意的是,涉及到权限的修改,只能用root去操作,其他人基本上没权限 useradd caixukun #创建用户caixukunpasswd   caixukun #给 ...

  10. CMS系统

    CMS是Content Management System的缩写,意为"内容管理系统" 对于内容管理,业界还没有一个统一的定义,不同的机构有不同的理解: 内容管理系统是企业信息化建 ...