• 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 文件中的 元素如下所示:

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

     

  • 相关阅读:
    【OpenCV-Python】教程:3-9 轮廓(2)轮廓特征
    2024.6.12 作业 xyt
    【笔记】神经网络中的注意力机制
    【初始RabbitMQ】工作队列的实现
    SVG—初识4
    中职网络安全竞赛实训设备P10-服务漏洞扫描与利用
    【CVPR2022 点云3D检测SOTA】SoftGroup for 3D Instance Segmentation on Point Clouds
    c代码实现小技巧
    eyb:项目介绍到获取用户信息功能实现(一)
    NVIDIA DPU — BlueField DPU Hardware
  • 原文地址:https://www.cnblogs.com/chillsrc/p/18185818