Protobuf-net基础
本文在于巩固基础
先了解什么是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("[email protected]"); 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,[email protected],TEXT
请按任意键继续. . .
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。