C#使用protobuf简述

16 篇文章 1 订阅
7 篇文章 0 订阅

编译依赖项

首先,创建一个C#4.5以上project,因为最新的protobuf依赖于C#5.0的语言特性。

然后,我们通过nuget,为项目添加对protobuf的引用,搜索protobuf就可以开始安装了。

安装完成后,可以编译一次工程,在bin/debug目录下就可以拿到Google.Protobuf.dll了。然后,我们就可以卸磨杀驴了,在nuget里卸载掉这个安装项(因为,我们可能需要分享这个库给其他同事用,用nuget方式并不方便)。

最后,手动添加对Google.Protobuf.dll,就可以了。

编辑.proto文件,编译文件

不详细展开了,具体可以去官网学习

下面,是一个我的使用例子。

syntax = "proto3";

message pb_team_info {
    string team_id = 1;
    string leader_id = 2;
    repeated string members = 3;
    int32 status = 4;
}

然后我们可以通过编译.proto文件,获得序列化的cs文件。

编译器protoc.exe,也可以去官网下载

protoc.exe test.proto mannul.proto --csharp_out=.

加入工程

    pb_team_info teamInfo = new pb_team_info();
    teamInfo.LeaderId = "321312";
    teamInfo.Members.Add("ddwd");
    teamInfo.Members.Add("123");
    teamInfo.Status = 1;
    teamInfo.TeamId = "newbie";

    var datas = teamInfo.ToByteArray();
    foreach (var b in teamInfo.ToByteArray())
        Console.Write((char)b);

    pb_team_info tb = new pb_team_info();
    tb.MergeFrom(datas);

最后,可以在一次序列化,一次反序列后得到tb对象,tb对象和teamInfo对象数据一致。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: C#可以通过Google开发的protobuf库来使用protobufprotobuf是一种轻量级的数据序列化协议,可以用于跨语言数据交换和持久化存储等场景。 在C#使用protobuf,需要进行以下步骤: 1. 安装protobuf库:可以通过NuGet包管理器安装Google.Protobuf库。 2. 定义protobuf消息:定义.proto文件,描述消息的结构和字段,然后使用protoc编译成C#代码。 3. 使用C#代码生成的类:使用protobuf库提供的类来序列化和反序列化消息。 以下是一个简单的示例,演示如何在C#使用protobuf: 定义.proto文件: ``` syntax = "proto3"; package mypackage; message Person { string name = 1; int32 age = 2; } ``` 使用protoc编译成C#代码: ``` protoc --csharp_out=. person.proto ``` 生成Person.cs文件,包含了Person类的定义。 使用Person类: ```csharp using Google.Protobuf; // 创建Person对象 Person person = new Person { Name = "Alice", Age = 30 }; // 将Person对象序列化为二进制数据 byte[] data = person.ToByteArray(); // 将二进制数据反序列化为Person对象 Person person2 = Person.Parser.ParseFrom(data); // 输出Person对象的属性值 Console.WriteLine($"Name: {person2.Name}, Age: {person2.Age}"); ``` 以上是一个简单的使用protobuf的示例,更详细的使用方式可以参考protobuf库的官方文档。 ### 回答2: c是英文字母表中的第三个字母,是一个辅音字母。它的发音类似/k/音,如cat(猫)中的c。c也可以和其他字母组合成不同的发音。例如,与字母h组合时,发成/ch/音,如chair(椅子)中的ch。c也可以与字母k组合成/k/音,如click(点击)中的c。c还可以与字母s组合成/s/音,如city(城市)中的c。c是英文中常见的字母之一,用于构成单词。此外,在罗马数字中,c表示数字100。总之,c是一个有着多种发音和用途的字母,对于英语学习者来说是一个重要的字母之一。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值