• gRPC入门学习之旅(五)


     gRPC入门学习之旅(一)

            通过之前的文章,我们已经创建了gRPC的服务端应用程序,那么应该如何来使用这个服务端应用程序呢,接下来介绍如何通过客户端来使用这个服务端应用程序。

    3、创建gRPC客户端                             

    3.1、创建gRPC的控制台客户端项目

     

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

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

     

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

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

         

     

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

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

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

     

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

     

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

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

    Grpc.Net.Client

    Grpc.Tools

    Grpc.Net.ClientFactory

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

     

     

    3.2、添加Proto协议文件引用

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

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

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

     

     

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

     

     

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

    复制代码
      <ItemGroup>
    
        <Protobuf Include="..\Demo.GrpcService\Protos\UserInfo.proto" GrpcServices="Client">
          <Link>Protos\UserInfo.protoLink>
        Protobuf>
    
      ItemGroup>
    复制代码

     

     

  • 相关阅读:
    深度解读ChatGPT基本原理
    xss-labs/level-2
    elment-table实现行滚动效果
    vue-3d-model属性介绍
    传智教育|软件测试工程师未来的发展方向有哪些?
    C++中的static变量
    SQL11 高级操作符练习(1)
    MySQL索引底层数据结构与算法
    【scipy 基础】--傅里叶变换
    Linux:进程的状态理解
  • 原文地址:https://www.cnblogs.com/chillsrc/p/18117157