C#/net 使用Protocol Buffers入门
Protocol buffers 是一个由谷歌开发的开源的编码机制用于将结构化的数据序列化或者反序列化,被设计成语言以及平台中立,protobuff比xml更简单比json还要紧凑一些,网上有一些关于对比他与一些序列化的对比这里就不再赘述。这里主要说一下在C#/dotNet里是怎么运行的。
1.下载google-protobuff的源码或者直接去下载别人编译好的dll也可以。如果是源码在VS2015里编译一下如果没有问题会生成Google.Protobuf.dll
2.定义数据结构,注意这里定义后可以生成各种语言的代码文件.我这里定义的数据结构如下:
syntax = "proto3";
package ConsoleService; message Order{
int32 orderId = ;
string memberName = ;
string memberPhone = ;
string memberReceiveName =; enum PhoneType {
MOBILE = ;
HOME = ;
WORK = ;
} message PhoneNumber {
string number = ;
PhoneType type = ;
} repeated PhoneNumber phones = ;
}
注意这里的package是指命名空间,也可以这样 option csharp_namespace = "ConsoleService";
3.生成c#文件
可以用 protogen 把执行文件放到system32里或者配置环境变量这样就可以直接使用在命令行下进入到文件目录 然后执行
protogen -i:./proto\order.proto -Order.cs
4.使用
Order ir = new Order {
MemberName="侧山东省的说的",
MemberPhone="",
MemberReceiveName ="encryFish",
OrderId=
};
using (var output = File.Create("encry.dat"))
{
ir.WriteTo(output);
}
Order myOrder;
using (var input = File.OpenRead("encry.dat"))
{
myOrder = Order.Parser.ParseFrom(input);
//myOrder=Order.Parser.ParseFrom(
Console.WriteLine($"my order receiveName is {myOrder.MemberReceiveName}");
}
到这里使用就结束了,大家可以自行测试下在不同的序列化方式下执行的速度跟最后文件的大小,推荐大家在系统架构的时候可以采用这种方式
C#/net 使用Protocol Buffers入门的更多相关文章
- Java使用Protocol Buffers入门四步骤
Protocol Buffers(简称protobuf)是谷歌的一项技术.用于将结构化的数据序列化.反序列化.经经常使用于网络传输. 这货实际上相似于XML生成和解析.但protobuf的效率高于XM ...
- Google Protocol Buffers 入门
Google Protocol Buffers 是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化.它很适合做数据存储或 RPC 数据交换格式.可用于通讯协议.数据存储等领域的 ...
- Google Protocol Buffers 快速入门(带生成C#源码的方法)
Google Protocol Buffers是google出品的一个协议生成工具,特点就是跨平台,效率高,速度快,对我们自己的程序定义和使用私有协议很有帮助. Protocol Buffers入门: ...
- Google Protocol Buffers简介
什么是 protocol buffers ? Protocol buffers 是一种灵活.高效的序列化结构数据的自动机制--想想XML,但是它更小,更快,更简单.你只需要把你需要怎样结构化你的数据定 ...
- Google Protocol Buffers介绍
简要介绍和总结protobuf的一些关键点,从我之前做的ppt里摘录而成,希望能节省protobuf初学者的入门时间.这是一个简单的Demo. Protobuf 简介 Protobuf全称Google ...
- 让Web API支持Protocol Buffers
简介 现在我们Web API项目基本上都是使用的Json作为通信的格式,随着移动互联网的兴起,Web API不仅其他系统可以使用,手机端也可以使用,但是手机端也有相对特殊的地方,网络通信除了wifi, ...
- Xml,Json,Hessian,Protocol Buffers序列化对比
简介 这篇博客主要对Xml,Json,Hessian,Protocol Buffers的序列化和反序列化性能进行对比,Xml和Json的基本概念就不说了. Hessian:Hessian是一个轻量级的 ...
- Protocol buffers 介绍
Protocol buffers和mxl一样在序列化数据结构时很灵活.高效和智能,但是它的优势在于定义文件更小,读取速度更快,使用更加简单.目前protocol buffers支持C++.java和p ...
- java&Protocol Buffers
ps: Protocol Buffers简称PB PB 安装配置 下载 PB: 在 PB 官网,下载最新版(或者其他版本)PB,这里为了与 Java 项目中的 PB Maven 依赖版本一致,使用 P ...
随机推荐
- mysql 简单优化方法
优化步骤:1.查看SQL是否可以优化.2.查看索引是否可以优化.3.查看表结构是否可以优化. show table status from databases like 'tablename%'; / ...
- django admin后台提示没有static样式相关的文件
问题现象: 将 DEBUG = TEMPLATE_DEBUG = False 设置为False后,访问admin的管理后台,没有样式了. 解决办法: vim settings.py 确保有下面的这两 ...
- 《Objective-C编程》部分示例
<Objective-C编程>部分示例 最近在看<Objective-C编程>顺带实现了书中部分示例代码.如果感兴趣可以自行 下载(点我). 通过本书大致了解了Objectiv ...
- hibernate常用关联
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns=" ...
- 一起买Beta版本系列文档
一起买beta版本文档报告汇总 031402401鲍亮 031402402曹鑫杰 031402403常松 031402412林淋 031402418汪培侨 031402426许秋鑫 一.Beta版本冲 ...
- IOS 开发 ARC兼容MRC框架
在后面加 -fno-objc-arc
- 配置与使用 Git与Github
Git与Github的注册.配置及使用方法在网上有详细的教程,不做总结. 这里主要总结我在Git.Github的配置及使用过程中遇到的问题.如下: (1) Git与Github的关系.两者都是版本管理 ...
- Ado.net中简单的DBHelper类(增删改查)
private static string connString = "server=.;database=hotel;uid=aa;pwd=123";//最好从配置文件中取出 p ...
- Linux 如何使用压缩与解压缩的方式将Windows下的zip压缩包上传到Linux系统
当我们无法使用xftp方式上传文件到Linux系统时,我们可以使用在Windows下压缩文件夹,然后到Linux系统下解压缩的方式,完成整个上传工作. 第一步:在Windows系统下,将整个文件夹压缩 ...
- Android adb常用指令
Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态. 可以通过下列几种方法加入adb: 在设备上运行shell命令 通过端口转发来管理模拟器或设备 从模拟器或 ...