zoukankan      html  css  js  c++  java
  • C#中使用gRPC

    C#中使用gRPC

    我的这几篇文章都是使用gRPC的example,不是直接编译example,而是新建一个项目,从添加依赖,编译example代码,执行example。这样做可以为我们创建自己的项目提供借鉴。如果对gRPC构建应用很熟悉,可以无视本系列文章。

    目录

    一、概述

    二、编译gRPC

    三、C#中使用gRPC

    四、C++中使用gRPC

    由于有NuGet,使得C#在配置项目时非常简单。

    1. 在NuGet中添加ProtocolBuffer和gRPC引用

    protocol buffer 3.0版本,在NuGet插件界面选择Include Prerelease,查找google protocol buffer。
    如果不选择include rerelease,查找到的protocol buffer是2.4的,无法编译通过gRPC的example。

    2. 定义proto

    设计proto协议文件,包括服务协议和数据。gRPC必须使用protocol buffer3.0版本,所以syntax设置为proto3
    Greeter是服务名称
    HelloRequest是请求数据
    HelloReply是回复数据

    syntax = "proto3";
    
    option java_multiple_files = true;
    option java_package = "io.grpc.examples.helloworld";
    option java_outer_classname = "HelloWorldProto";
    option objc_class_prefix = "HLW";
    
    package helloworld;
    
    // The greeting service definition.
    service Greeter {
      // Sends a greeting
      rpc SayHello (HelloRequest) returns (HelloReply) {}
    }
    
    // The request message containing the user's name.
    message HelloRequest {
      string name = 1;
    }
    
    // The response message containing the greetings
    message HelloReply {
      string message = 1;
    }

    3. 生成proto访问类

    定义proto文件后,通过protocol buffer3.0提供的protoc.exe工具生成访问类。这里使用gRPC定义的protoc的C#插件grpc_csharp_plugin.exe,而不是使用protoGen.exe。
    将以下几个文件放在同一个文件夹中:

    grpc_csharp_plugin.exe
    helloworld.proto
    protoc.exe

    创建一个bat文件,编写如下命令行:

    protoc.exe -I=. --csharp_out=. --grpc_out=. --plugin=protoc-gen-grpc=grpc_csharp_plugin.exe helloworld.proto

    执行bat文件,得到proto的访问类:

    helloworld.cs
    helloworldGrpc.cs

    4. 创建C#项目

    将两个访问类文件添加到C#项目中,将gRPC的C# example拷贝到Program.cs中,编译通过。

  • 相关阅读:
    Using Resource File on DotNet
    C++/CLI VS CSharp
    JIT VS NGen
    [Tip: disable vc intellisense]VS2008 VC Intelisense issue
    UVa 10891 Game of Sum(经典博弈区间DP)
    UVa 10723 Cyborg Genes(LCS变种)
    UVa 607 Scheduling Lectures(简单DP)
    UVa 10401 Injured Queen Problem(简单DP)
    UVa 10313 Pay the Price(类似数字分解DP)
    UVa 10635 Prince and Princess(LCS N*logN)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5335646.html
Copyright © 2011-2022 走看看