标签:
本文在于巩固基础
先了解什么是protobuf
Protobuf是google开源的一个项目,用户数据序列化反序列化,google声称google的数据通信都是用该序列化方法。它比xml格式要少的多,甚至比二进制数据格式也小的多。
Protobuf格式协议和xml一样具有平台独立性,可以在不同平台间通信,通信所需资源很少,并可以扩展,可以旧的协议上添加新数据,protobuf-net就是.net平台下的protobuf使用
点击 准备工作
下面看看一个简单的实例
上面准备工作完成后由三个文件(我这里只是举例,大家文件名肯定不一样)
事先我已经写好的proto文件,我这里用记事本打开
这里的package Msg编译成.cs文件后,Msg就是命名空间,message Person 编译后Person 是类名
下面是实例代码
class Program { static void Main(string[] args) { Deserialize(Serialize()); } /// <summary> /// 序列化 /// </summary> /// <returns></returns> private static byte[] Serialize() { var builder = Msg.Person.CreateBuilder(); builder.SetId(1); builder.SetName("hello"); builder.SetEmail("123456789@qq.com"); builder.SetMsgType(Msg.Person.Types.Type.TEXT); Msg.Person person = builder.Build(); return person.ToByteArray(); } /// <summary> /// 反序列化 /// </summary> /// <param name="bytes"></param> private static void Deserialize(byte[] bytes) { Msg.Person newPerson = Msg.Person.ParseFrom(bytes); Console.WriteLine(string.Format("{0},{1},{2},{3}", newPerson.Id, newPerson.Name, newPerson.Email, newPerson.MsgType)); } }
结果为
1,hello,123456789@qq.com,TEXT
请按任意键继续. . .
标签:
原文地址:http://www.cnblogs.com/jixinyu/p/4308724.html