欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

C#之ProtoBuf應(yīng)用基礎(chǔ)-創(chuàng)新互聯(lián)

protobuf-csharp-sport 的下載地址 : https://github.com/jskeet/protobuf-csharp-port

專業(yè)領(lǐng)域包括成都網(wǎng)站建設(shè)、成都做網(wǎng)站、電子商務(wù)商城網(wǎng)站建設(shè)、微信營(yíng)銷、系統(tǒng)平臺(tái)開發(fā), 與其他網(wǎng)站設(shè)計(jì)及系統(tǒng)開發(fā)公司不同,成都創(chuàng)新互聯(lián)公司的整合解決方案結(jié)合了幫做網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗(yàn)和互聯(lián)網(wǎng)整合營(yíng)銷的理念,并將策略和執(zhí)行緊密結(jié)合,為客戶提供全網(wǎng)互聯(lián)網(wǎng)整合方案。

一 : 準(zhǔn)備工作

①,將下載的文件解壓:

C#之ProtoBuf應(yīng)用基礎(chǔ)
②,開啟BuildAll.bat在根目錄生成build_output 和 build_temp2個(gè)文件夾
(注意使用管理員權(quán)限打開BuildAll.bat , 不然會(huì)出現(xiàn)錯(cuò)誤)
C#之ProtoBuf應(yīng)用基礎(chǔ)
③,在生成的build_output成會(huì)生成一系列的工具(在其下的tools文件夾下),介紹如下:
C#之ProtoBuf應(yīng)用基礎(chǔ)

二 : 生成C#文件

①,將一個(gè)proto文件copy到tools文件夾
C#之ProtoBuf應(yīng)用基礎(chǔ)
proto文件內(nèi)容如下:

package PB;
message R_LoginVo{
    required string name = 1;
    required string pwd = 2;
    required string sign = 3;
}
message A_LoginVo{
    required int32 ty = 1;
    required ParamVo msg = 2;
}
message PackingVO{
    required bool succ = 1;
    required string protoId = 2;
    optional int32 obj = 3;
}
message ParamVo{
    optional string m = 1;
}

②,將proto文件生成二進(jìn)制文件
1,打開命令提示提示符 , 轉(zhuǎn)到tools文件夾(如上).
2,使用命令 :protoc --descriptor_set_out=protocol_pb.protobin --include_imports protocol_pb.proto
可以看到tools文件夾中多了一個(gè) : protocol_pb.protobin文件 , 如下:
C#之ProtoBuf應(yīng)用基礎(chǔ)
3,使用命令:protogen protocol_pb.protobin將protocol_pb.protobin文件翻譯成C#文件 : ProtocolPb.cs , 如下:
C#之ProtoBuf應(yīng)用基礎(chǔ)
可以看出c#文件將中間的_去掉了.這個(gè)確實(shí)是我始料未及的.

三 : 使用C#資源

①,將Google.ProtocolBuffers.dll 和 Google.ProtocolBuffers.Serialization.dll 引入到項(xiàng)目,如下
C#之ProtoBuf應(yīng)用基礎(chǔ)
②,將 ProtocolPb.cs文件加入此項(xiàng)目
③,測(cè)試(正在使用)

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using PB;

namespace ProtoBufDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            R_LoginVo.Builder loginBuild = R_LoginVo.CreateBuilder();
            loginBuild.SetName("Aonaufly").SetPwd("123456").SetSign("123456789");
            Console.WriteLine(@"name : {0} , pwd : {1} , sign : {2}" , loginBuild.Name , loginBuild.Pwd , loginBuild.Sign);

            byte[] bytes;
            R_LoginVo login = loginBuild.Build();
            using (MemoryStream stream = new MemoryStream())
            {
                //Save the person to a stream
                login.WriteTo(stream);
                bytes = stream.ToArray();
            }
            R_LoginVo copy_analysis = R_LoginVo.CreateBuilder().MergeFrom(bytes).Build();
            Console.WriteLine(@"name : {0} , pwd : {1} , sign : {2}", copy_analysis.Name, copy_analysis.Pwd, copy_analysis.Sign);

            bytes = R_LoginVo.CreateBuilder().MergeFrom(bytes).Build().ToByteArray();

            Console.ReadKey();
        }
    }
}

結(jié)果如下:
C#之ProtoBuf應(yīng)用基礎(chǔ)
可以看出 , Google的ProtoBuf在通訊方面確實(shí)有很大的優(yōu)勢(shì) :
1,操作簡(jiǎn)單
2,代碼明晰
再也不需要構(gòu)建復(fù)雜的Bytes結(jié)構(gòu)了.

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。

本文名稱:C#之ProtoBuf應(yīng)用基礎(chǔ)-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://www.chinadenli.net/article10/gsido.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)手機(jī)網(wǎng)站建設(shè)網(wǎng)頁(yè)設(shè)計(jì)公司移動(dòng)網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站網(wǎng)站維護(hù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

手機(jī)網(wǎng)站建設(shè)