随着微服务的发展,相信越来越多的.net人员也开始接触GRpc这门技术,大家生成GRpc客户端的方式也各不相同,今天给大家介绍一下依据Proto文件生成Rpc客户端的五种方式

前提:需要安装4个Nuget包

Google.Protobuf、Grpc、GRpc.Net.ClientFactory、GRpc.Tools

VS安装命令如下

Install-Package Google.Protobuf

Install-Package Grpc

Install-Package GRpc.Net.ClientFactory

Install-Package GRpc.Tools

准备工作

首先我们新建一个简单的.net core3.1类库 命名为:GRpc.Proto 然后添加HelloWord.Proto 添加一个简单的协议

syntax = "proto3";
import "google/protobuf/timestamp.proto"; option csharp_namespace = "HelloWordDemo"; package HelloWord; service HelloWord{
rpc SayHelloWord(SayHelloWordRequest) returns (SayHelloWordResponse);
} message SayHelloWordRequest{
string message=1;//发送消息
} message SayHelloWordResponse{
string message=2;//返回消息
}

然后给该类库安装上述的安装包(当前类库只是协议,不需要安装GRpc.Net.ClientFactory)

截止到现在,我们的准备工作已经做好了,接下来开始进入正题

通过添加服务引用

新增一个名为GRpcClient的控制台,安装以上介绍的四个类库

项目右键点击添加-->服务引用



选择浏览找到我们刚刚添加的proto文件 将选择要生成的类的类型选"客户端"



点击确定 第一种就完成了

通过Nuget包添加引用

这种在公司项目中比较推荐使用的(前提是已经有了私有nuget库)

找到我们刚刚新增的GRpc.Proto项目,右键属性,找到打包,填写相对应的信息,一定要勾选在构建会生成Nuget包



重新生成之后就可以在项目debug目录下看到对应的nuget包了,推送到私有的nuget库就可以了

直接通过Proto文件引用

在项目下新建一个文件Until,将上面的HelloWord.Proto文件放在新建的文件下,右键点击HelloWord.Proto的属性



生成操作选择ProtoBuf conpiler

会出现一个新的属性:如下



此时我们选择Client only

客户端就生成好了

通过url添加引用

项目右键点击添加-->服务引用



选择Url(一定要公网可以访问,如果是在github上的一定要有如下的操作)



点击Raw



使用这个路径 才可以成功

通过地址生成Proto文件引用

这种方式其实和上面一种方式的用法差不多,但是感觉还是需要写一些。万一大家哪天需要用到呢

这种方法是通过donnet命令和proto文件地址生成proto文件

这里需要大家配置一个环境变量

命令如下

在PwwerShell获取VS控制台执行以下命令

dotnet grpc add-url proto文件的url(公网可访问) -o 文件生成的地址

如果大家有其他的生成需求 可点击 跳转到具体页面查看详细介绍

这里面的需要的tools文件我已上传到百度网盘,链接会在文末给出,如果大家需要,自行下载

tools文件下载地址:

链接:https://pan.baidu.com/s/1Vc7FW1w3dX_ZNsbUbh62vQ

提取码ari6

如有哪里讲得不是很明白或是有错误,欢迎指正

如您喜欢的话不妨点个赞收藏一下吧

GRpc添加客户端的四种方式的更多相关文章

  1. SWT组件添加事件的四种方式

    在我们CS日常开发过程中会经常去为组件添加事件,我们常用的为AWT与SWT.SWT的事件模型是和标准的AWT基本一样的.下面将按照事件的四种写法来实现它. 一.匿名内部类的写法 new MouseAd ...

  2. 给TextView添加超链接的四种方式

    因为在上上篇博客中介绍了SpannableString的使用(SpannableString使用详解),由此想到给TextView添加超链接究竟有多少种方式?经过个人总结,现在一共发现四种,如果还有其 ...

  3. Java添加事件的四种方式

    Java添加事件的几种方式(转载了codebrother的文章,做了稍微的改动) /** * Java事件监听处理——自身类实现ActionListener接口,作为事件监听器 * * @author ...

  4. css添加样式的四种方式

    1. 导入样式:在 .css文件中使用@import url("...")来引入另一个css样式表 2. 外部样式:在html页面中的head中使用 link 标签引入,如< ...

  5. iOS 登陆的实现四种方式

    iOS 登陆的实现四种方式 一. 网页加载: http://www.cnblogs.com/tekkaman/archive/2013/02/21/2920218.ht ml [iOS登陆的实现] A ...

  6. 实现web数据同步的四种方式

    http://www.admin10000.com/document/6067.html 实现web数据同步的四种方式 1.nfs实现web数据共享 2.rsync +inotify实现web数据同步 ...

  7. .net core 2.x - 缓存的四种方式

    其实这些微软docs都有现成的,但是现在的人想对浮躁些,去看的不会太多,所以这里就再记录下 ,大家一起懒一起浮躁,呵呵. 0.基础知识 通过减少生成内容所需的工作,缓存可以显著提高应用的性能和可伸缩性 ...

  8. linux下实现web数据同步的四种方式(性能比较)

    实现web数据同步的四种方式 ======================================= 1.nfs实现web数据共享2.rsync +inotify实现web数据同步3.rsyn ...

  9. 【Java EE 学习 80 下】【调用WebService服务的四种方式】【WebService中的注解】

    不考虑第三方框架,如果只使用JDK提供的API,那么可以使用三种方式调用WebService服务:另外还可以使用Ajax调用WebService服务. 预备工作:开启WebService服务,使用jd ...

随机推荐

  1. Rabbit and Turtle

    知乎上有这样一个问题:如果兔子都在拼命奔跑,是什么给了作为乌龟的你前进的动力? 随着视野的不断开阔,我们难免怀疑自身前进的意义,曾经有很长一段时间我也深陷其中,直到看到余亦多先生的回答才有所感悟. 问 ...

  2. 数学--博弈论--巴什博奕(Bash Game)

    终于也轮到我做游戏了,他们做了好几个月的游戏了. 巴什博弈: 两个人做游戏,取石子,一个人最多可以可以取M个,至少取1个,最后取完的赢. 显然,如果n=m+1,那么由于一次最多只能取m个,所以,无论先 ...

  3. P5960 差分约束算法模板

    差分约束 差分约束,一般用来解决有\(n\)个未知数,\(m\)个不等式方程的问题,形如: \[\begin{cases} \ x_{a_1}-x_{b_1}\leq y_1\\ \ x_{a_2}- ...

  4. RF(读写 excel)

    1.安装 ExcelLibrary 库:pip install robotframework-ExcelLibrary 但是 Python3.0 通过上面的命令安装 ExcelLibrary 时,会发 ...

  5. Arduino编程基础1.1

    Arduino编程语言是建立在C/C++语言基础上的,即以C/C++语言为基础,把AVR单片机(微控制器)相关的一些寄存器参数设置等进行函数化,以利于开发者更加快速地使用.其主要使用的函数包括数字I/ ...

  6. Java笔记(day20-22)

    IO流: 输入流.输出流 字节流.字符流:为了处理文字数据方便而出现的对象. (其实这些对象的内部使用的还是字节流(因为文字最终也是字节数据,只不过,通过字节流读取了相对应的字节数,没有对这些字节直接 ...

  7. Hadoop入门学习笔记-第二天 (HDFS:NodeName高可用集群配置)

    说明:hdfs:nn单点故障,压力过大,内存受限,扩展受阻.hdfs ha :主备切换方式解决单点故障hdfs Federation联邦:解决鸭梨过大.支持水平扩展,每个nn分管一部分目录,所有nn共 ...

  8. D. Ehab the Xorcist(纯构造方法)

    \(如果觉得下面难以理解,可以去这里看一种较为简单的解法\):saf \(这个题嘛,首先要明确异或的性质:相同为0,不同为1.\) \(举个例子,我们来构造u=15和v=127的情况\) \(注意到, ...

  9. Spring官网阅读 | 总结篇

    接近用了4个多月的时间,完成了整个<Spring官网阅读>系列的文章,本文主要对本系列所有的文章做一个总结,同时也将所有的目录汇总成一篇文章方便各位读者来阅读. 下面这张图是我整个的写作大 ...

  10. mongodb cluster

    假设三台机器,ip分别为192.168.1.10,192.168.1.11,192.168.1.12,分别在每台电脑上下载并解压mongodb,关闭防火墙或者开放防火墙端口 一.安装shard 配置文 ...