首页 > 其他分享 >gRPC入门学习之旅(八)

gRPC入门学习之旅(八)

时间:2024-05-11 09:52:51浏览次数:20  
标签:文件 入门 之旅 gRPC Demo 如下 Grpc 鼠标

 gRPC入门学习之旅(一)

gRPC入门学习之旅(二) gRPC入门学习之旅(三) gRPC入门学习之旅(四) gRPC入门学习之旅(五) gRPC入门学习之旅(六)  gRPC入门学习之旅(七)

 

3.7、添加proto协议文件

1.将服务端项目Demo.GrpcService中的Protos目录中的Grpc协议文件复制过来,如下图所示:

 

 

2.在Visual Studio 2022的解决方案资源管理器中,使用鼠标左键双击项目Demo.Grpc.Client,在文本编辑器中打开项目文件,并进行编辑,增加ItemGroup节点,将Demo.GrpcService中有关Grpc的两个配置项复制过来,将其中GrpcServices 属性由Server修改为“Client”,配置项如下:

 

    <ItemGroup>

        <Protobuf Include="Protos\greet.proto" GrpcServices="Client" />

        <Protobuf Include="Protos\UserInfo.proto" GrpcServices="Client" />

    </ItemGroup>

 


3.8、客户端编译生成GRPC类

1. 在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.Grpc.Client”,然后单击鼠标右键,在弹出的快捷菜单中选择“重新生成”菜单项。

2. 在“解决方案资源管理器”中,使用鼠标左键选中项目名称“Demo.Grpc.Client”,然后单击鼠标右键,在弹出的快捷菜单中选择“在文件资源管理器中打开文件夹”菜单项。如下图。

 

3.我们打开“文件资源管理器”,进入到Demo.Grpc.Common\obj\Debug\ net7.0 目录,发现此时目录下也有与服务端一样的4个.cs文件,就是GRPC协议文件对应的类文件,如下图所示:

 

4.在Visual Studio 2022,将“Demo.Grpc.Client”项目设为启动项目,按F5,启动。会出现如下图的错误。

 

 

 

3.9、创建公共类库并添加Proto协议文件引用

我们在这里使用一个公共类库来添加协议引用。

 

1. 在Visual Studio 2022菜单栏上选择“文件—》新建—》项目”。

或者在Visual Studio 2022的解决方案资源管理器中,使用鼠标右键单击“解决方案‘Demo.GrpcService’”,在弹出的快捷菜单中选择“添加—》新建项目”。如下图。

2. Visual Studio 2022弹出的“创建新项目”的对话框中做如下选择。如下图。

  • 在最左边的下拉框中,选择 “C# ,如下图中1处
  • 在中间的下拉框中,选择 “所有平台”,如下图2处。
  • 在最右边的下拉框中,选择“库”,如下图3处。
  • 在下图中4处,选择“类库”模板,点击“下一步”按钮。

     

4.在弹出的“配置新项目”的对话框中,如下图,在“项目名称”输入框中,输入“Demo.Grpc.Common”。然后使用鼠标点击“下一步”按钮。

5. 在弹出的“其他信息”的对话框,如下图。在“框架”下拉框中,选择“NET 7.0(标准期限支持)”。其他值选择默认值即可。然后使用鼠标点击“创建”按钮。项目创建成功。

6.在解决方案资源管理器中——>在项目Demo.Grpc.Common中的依赖项上鼠标右键单击——>弹出一个菜单,选中“管理NuGet程序包”。

7. 在打开的NuGet包管理界面的中选择“浏览”标签页,在搜索框中输入“google”,找到最新版本google.protobuf,点击安装。

8.  Visual Studio 2022 开始安装Google.Protobuf,会弹出安装确认界面,点击“OK”按钮。

9. 在打开的NuGet包管理界面的中“浏览”标签页的搜索框中输入“grpc”,然后依次安装以下二个包。

Grpc.Tools

Grpc.Net.ClientFactory

10. 在以上二个包全部安装完成之后,NuGet包管理界面的中选择“已安装”标签页,会看到刚才安装的三个包,如下图。

11. 在 Visual Studio 2022 的“解决方案资源管理器”中,使用鼠标右键单击“Demo.Grpc.Common”,在弹出的快捷菜单中选择“添加—》服务引用或是连接的服务”。“服务引用”和“连接的服务”均在同一个UI 下进行管理。 如下图。

12.在出现的工具窗口中,选择“连接的服务”部分,然后在“服务引用”部分中选择“添加服务引用”,选择“gRPC”并点击“下一步”。如下图。

13.在“添加新的gRPC服务引用”弹出界面中,选择“文件”,点击“浏览”按钮,在弹出对话框中找到 Demo.GrpcSERVICE 项目中的 protos 文件夹中的UserInfo.proto,在“选择要生成的类的类型”下保留“客户端”,然后选择“完成”。如下图。

14.在添加完UserInfo.proto文件之后,界面返回到“连接的服务”界面,会看到服务引用中有我们刚才添加的引用文件。如下图。

 

 

15. 使用 Visual Studio 2022的“添加连接的服务”功能时,UserInfo.proto 文件将作为链接文件而不是副本文件添加到类库项目中,因此对服务项目中文件的更改将自动应用到客户端项目中。 csproj 文件中的 <Protobuf> 元素如下所示:

 
  <ItemGroup>

    <Protobuf Include="..\Demo.GrpcService\Protos\UserInfo.proto" GrpcServices="Client">

      <Link>Protos\UserInfo.proto</Link>

    </Protobuf>

  </ItemGroup>

 

标签:文件,入门,之旅,gRPC,Demo,如下,Grpc,鼠标
From: https://www.cnblogs.com/chillsrc/p/18185818

相关文章

  • Python入门教程(三)
    数据类型str(字符串)Python中最常用的数据类型就是字符串,其用途也很多,我们可以使用单引号‘’或者双引号“”来创建字符串。字符串是不可修改的。关于字符我们从创建、索引、切片、长度、遍历、删除、分割、清除空白、大小写转换、判断以等方面对字符串进行介绍。 Int(数字......
  • 【vue3入门】-【22】 组件attribute透传
    透传Attribute透传Attribute指的是传递给一个组件,却没有被该组件声明为props或emits的attribute或者v-on事件监听器。最常见的列子就是class、style和id。当一个组件以单个元素为根路径渲染时,透传的attribute会自动被添加到根元素上app.vue<template><!--在引用的组件上使......
  • 智启蒸汽时代:数字孪生锅炉的革新之旅
    在飞速发展的工业4.0时代,数字孪生技术已经深入到我们生产生活的方方面面。而对于那些承载着重工业血脉的蒸汽工厂来说,一项新的技术正在悄然改变它们的未来。 走进蒸汽工厂,感受传统与现代的交融蒸汽工厂,这个充满力量与热情的地方,长久以来都是工业发展的核心。然而,随着时代的进......
  • Android Studio简单入门教程
    1.建立项目首先点击new——newproject新建项目选择想要创建的Android的模板,建议选择emptyactivity(空模板),然后nextName:给你的项目起一个名字APIlevel:选择Android虚拟机的版本,版本越低运行起来越快剩下的就按默认的就行,点击finish(由于版本不一样,步骤2和步骤3的顺序......
  • 字符串入门指南
    前言此文章带领入门基础字符串,内容从KMP到SA,其中包含算法文章推荐/算法讲解,经典题目的讲解。带!号的题是基础例题,带*号的是推荐首先完成的题(有一定启发性的)。本题单以每种字符串算法为大结构。manacher!P3805【模板】manacher好的博客code#include<bits/stdc++.h>u......
  • ZGRPC - A Unit Test Failure
     functestUpdateTasksUnavailableDb(t*testing.T){//Arrangeconn,c:=newClient(t)deferconn.Close()newDb:=NewFakeDb(IsAvailable(false))*fakeDb=*newDb//ClearallthefieldsinfakeDb.d.tasksexceptId.requests......
  • Vue入门到关门之Vue3学习
    一、常用API注意:本文项目均使用脚手架为Vite1、setup函数(1)介绍如果在项目中使用配置项API,那么写起来就和vue2的写法是一样的;但是如果在项目中写的是组合式API,那么组件中所用到的:数据、方法等等,均要配置在setup中。此外,setup()钩子也是在组件中使用组合式API的入口,通常只在......
  • Vue入门到关门之Vue2高级用法
    一、在vue项目中使用ref属性ref属性是Vue.js中用于获取对DOM元素或组件实例的引用的属性。通过在普通标签上或组件上添加ref属性,我们可以在JavaScript代码中使用this.$refs.xxx来访问对应的DOM元素或组件实例。放在普通标签上,通过this.$refs.名字---》取到的是do......
  • Vue入门到关门之Vue3项目创建
    一、vue3介绍1、为什么要学习vue3?vue3的变化:首先vue3完全兼容vue2,但是vue3不建议用vue2的写法;其次,vue3拥抱TypeScript,之前vue2使用的JavaScript,ts完全兼容js最后之前学的vue2是配置项api,而vue3是组合式apioptionsAPI(旧)=>compositionAPI(新),效果:代码组织更方便了,逻辑......
  • 01--JS01--入门
    JavaScript01:基础入门JavaScript是一门能够运行在浏览器上的脚本语言,简称JS。首先,Javascript这个名字的由来就很有意思,不少人认为Javascript和Java貌似很像,容易想象成Java的脚本但其实两者之间没有任何关系,纯粹是商业碰瓷。既然JS是可以运行在浏览器上的脚本,并且本质上......