1、安装Google.Protobuf和Google.Protobuf.Tools的Nuget包
打开Nuget管理器,搜索Protobuf
,安装Google.Protobuf
和Google.Protobuf.Tools
二个包。
2、序列化和返序列化
using Google.Protobuf;
public static class Pack
{
// 将byte[] 数据块序列化成ProtoBuf结构体
public static T Deserialize<T>(byte[] data) where T:IMessage,new()
{
var msg = new T();
return (T)msg.Descriptor.Parser.ParseFrom(data);
}
// 将ProtoBuf结构体返序列化成btye[]数据块
public static byte[] ToArray(IMessage data)
{
return data.ToByteArray();
}
}
3、测试
3.1 如proto文件
syntax = "proto3";
//物品信息
message ItemProto {
int32 id = 1; //id
sint64 count = 2;
}
3.2 C#中使用
public class Program
{
public static void Main(string[] args)
{
// 消息结构体
var item = new ItemProto();
item.id = 1;
item.count = 10;
// 序列化
var data = Pack.ToArray(item);
// 反序列化
var result = Pack.Deserialize<ItemProto>(data);
}
}