zoukankan      html  css  js  c++  java
  • 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("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
    请按任意键继续. . .

  • 相关阅读:
    js解析与序列化json数据(三)
    flex与js通信
    js解析与序列化json数据(一)
    js自定义事件(二)
    js解析与序列化json数据(二)
    js自定义事件(一)
    用户详情接口
    积分转让二维码url接口
    组合模式 The Composite Pattern
    计算机系统中的整数运算
  • 原文地址:https://www.cnblogs.com/jixinyu/p/4308724.html
Copyright © 2011-2022 走看看